17Otimizações
Commons Upload
Se você não for usar upload na sua aplicação, remova o JAR do commons upload do classpath. Isso evita o carregamento do interceptor de upload, deixando o request mais rápido.
Anotação @Lazy em Interceptors
Se o método accepts do seu interceptor não depende do seu estado interno você pode anotá-lo com @Lazy:
@Intercepts
@Lazy
public class MeuLazyInterceptor implements Interceptor {
public MeuLazyInterceptor(Dependencia dependencia) {
this.dependencia = dependencia;
}
public boolean accepts(ResourceMethod method) {
// depende apenas do method
return method.containsAnnotation(Abc.class);
}
public void intercepts(...) {
//...
}
}
Assim o VRaptor só vai instanciar esse interceptor se o método accepts retornar true. Para fazer isso, o VRaptor cria uma instância não funcional do interceptor (todas as dependências nulas) e chama o método accepts, evitando uma chamada ao Container de DI desnecessária. Acessos ao estado interno do interceptor podem gerar NullPointerException.
Não use o @Lazy se o accepts é trivial (apenas retorna true).