Estoy utilizando Spring 3 AOP, y tengo un aspecto que requiere acceso a HttpServletRequest. Se ve algo como esto:Spring AOP y seguridad de hilos de aspecto para un HTTPServletRequest bean autoalineado
@Aspect
public class MyAspect {
@Autowired
private HttpServletRequest httpServletRequest;
public void init() {
// Do something once...
}
@Before("my pointcut here...")
private void myMethod() {
// I need the httpServletRequest...
}
@After("my pointcut here...")
private void myOtherMethod() {
// I need the httpServletRequest...
}
}
Y está configurado de esta manera:
<bean id="myAspect" class="com.some.package.MyAspect" init-method="init" />
es el método init sólo se llama una vez por contenedor IoC, a pesar de que este es un aspecto, y están a salvo el hilo HTTPServletRequest ? Si no es así, ¿cuál es la mejor manera de obtenerlo durante la ejecución del consejo y que sea seguro para subprocesos? Si es posible, prefiero no usar un hilo local.
Tom, esta es una gran respuesta. ¿Es posible que Spring tenga esto documentado en algún lugar que pueda leer? Fue muy difícil encontrar algo relacionado con el funcionamiento del proxy.Ah, y no necesito acceder a la solicitud desde el init() - eso me hizo trampa y metí dos preguntas en una :) :) –
@BrianReindel: Incluí una referencia a la documentación de Spring en mi respuesta. –
Hola Thomasz, ¿funcionará el código en la respuesta? También puede dar su opinión sobre "http://stackoverflow.com/questions/22923813/set-systems-property-in-controller-and-access-that-in-an-aspect" – riship89