Cómo aplicar anotaciones de aspecto AOP en spring3.1 MVC
La anotación spring3.1 mvc -control se utiliza en el proyecto
Para monitorear el tiempo de ejecución de todas las operaciones, una AOP está escrito
Al configurar mvc aop, inicialmente se configura de acuerdo con la anotación de aspecto ordinaria, que no puede tener efecto.
Regrese y verifique la información relevante. Algunos dijeron que @control no es compatible con AOP, y otros dijeron que sí, pero finalmente encontré el método de configuración relevante
porque me gustan las anotaciones de aspecto. . estilo. Entonces solo proporciono configuración relacionada con el estilo de aspecto. Busque frascos relacionados en línea. Solo hablaré de la configuración real de la fachada mvc.
La premisa es que la configuración de MVC sea exitosa.
Escribir clase AOP
[java] ver copia simple
paquete com.wx.aop.timer
importar org.apache. log4j.aspectj.lang.ProceedingJoinPoint;
importar org.aspectj.lang.annotation.Around
importar org.aspectj.lang.annotation.Aspect; / p>
importar org.springframework.stereotype.Component;
@Componente
@Aspect
temporizador de clase pública {
private Logger logger = Logger.getLogger(getClass());
// Pruebe estas dos anotaciones
// @Around("execution(* org.springframework.web. servlet) .mvc.annotation .AnnotationMethodHandlerAdapter.handle(...))")
@Around("@annotation(org.springframework.web.bind.annotation.RequestMapping)")
public Object logTimer( ProceedingJoinPoint thisJoinPoint) throws Throwable {
String clazzName = thisJoinPoint.getTarget().getClass().getName()
String métodoName = thisJoinPoint.getSignature(); .
// Temporizador y llamada a la función de destino
long start = System.currentTimeMillis()
Resultado del objeto = thisJoinPoint.proceed(); p> p>
long time = System.currentTimeMillis() - start;
// Información de tiempo de salida
logger.info("Tiempo de operación :" + tiempo + "ms ClassName:" + clazzName+ " MethodName: " + métodoName + "()");
devolver resultado;
}
}
La siguiente declaración de configuración se agrega al archivo de configuración de spring-servlet:
<:aspectj-autoproxy proxy-target-class="true" /> <. ! -- Los comentarios de aspecto entran en vigor -->
El archivo de configuración mvc del autor es Spring -servlet.xml.
El archivo de configuración completo es el siguiente:
[html] ver copia simple
< - ViewResolver predeterminado -->
< bean id= "viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>