在spring用AOP记录?
我是新来的,在我的办公室里。 所以我没有指导。
我需要使用log4j
使用AOP
实现日志记录。
我在基本的spring MVC
示例中实现了没有AOP
的日志记录?
在没有记录的aspectJ
下使用aspectJ
在AOP
做了小样本(刚刚制作了Sysout
)?
我不知道如何整合它?
任何人都可以给我一个启动想法吗?
肯定赞赏好的答案……
Spring让我们很容易使用AOP。 这是一个简单的日志示例:
@Aspect public class MyLogger { private Logger log = Logger.getLogger(getClass()); @After("execution(* com.example.web.HomeController.*(..))") public void log(JoinPoint point) { log.info(point.getSignature().getName() + " called..."); } }
然后只需配置applicationContext.xml(或等效的):
您会在MyLogger类中注意到我在方法正上方指定了@After
。 这称为建议,它基本上指定在相关方法之后调用此“log”方法。 其他选项包括@Before, @Around, @AfterThrowing
。
表达式"execution(* com.example.web.HomeController.*(..))"
被称为切入点表达式,并指定我们所针对的内容(在本例中为HomeController类的所有方法)。
PS aop
命名空间( xmlns:aop="http://www.springframework.org/schema/aop"
)和架构位置(取决于版本)需要添加到顶部的applicationContext.xml中。 这是我的设置:
您需要执行几个步骤来集成Aspectj,
- 安装AspectJ, http://www.cs.utep.edu/cheon/cs3360/project/proj1/installing-aspectj.txt
- 将aop.xml添加到项目中的META-INF \ aop.xml
- 在项目类路径中添加aspectjrt-xx0.jar和aspectjweaver-xx0.jar
- 将-javaagent:/ aspectj的路径安装/ aspectjweaver-1.7.0.jar添加到服务器的JVM中。
这是aop.xml的示例,
如果你已经在使用spring,那么最好使用Spring来简化你的设置,这是一个很好的例子, http://forum.springsource.org/showthread.php?61551-Bean-Factory- is- not-set-换BeanConfigurerSupport