spring的AOP实现记录操作日志

1.记录日志的操作步骤(采用环绕通知的方式)


2.写记录日志的aop组件


LoggerBean.java就是普通的类


3.类中写个方法


 public Object loggerOperation(ProceedingJoinPoint pjp) throws Throwable {
  //ProceedingJoinPoint为连接点对象
  Object obj = pjp.proceed();// 执行目标组件的目标方法
  // ---------在目标方法之后执行-------------
  // 获取当前指行的类型名
  String className = pjp.getTarget().getClass().getName();
  // 获取当前执行的方法名
  String methodName =pjp.getSignature().getName();
  System.out.println("你执行了" + className + "类的"+ methodName + "方法!");
  return obj;
 }


4.在spring配置文件中配置aop

 

 <bean id="loggerBean" class="com.cxtt.aop.LoggerBean" scope="prototype" lazy-init="true"></bean>
 <aop:config>
  <aop:pointcut id="servicePointcut" expression="within(com.cxtt..*)" />
  <aop:aspect id="loggerAspect" ref="loggerBean">
   <aop:around method="loggerOperation" pointcut-ref="servicePointcut" />
  </aop:aspect>
 </aop:config>

 

 完整版的配置文件:


 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
 xmlns:jee="http://www.springframework.org/schema/jee"
 xsi:schemaLocation="
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd">
 <bean id="abc" class="com.cxtt.action.AbcAction" scope="prototype" lazy-init="true"></bean>
 <bean id="loggerBean" class="com.cxtt.aop.LoggerBean" scope="prototype" lazy-init="true"></bean>
 <aop:config>
  <aop:pointcut id="servicePointcut" expression="within(com.cxtt..*)" />
  <aop:aspect id="loggerAspect" ref="loggerBean">
   <aop:around method="loggerOperation" pointcut-ref="servicePointcut" />
  </aop:aspect>
 </aop:config>
 </beans>

 

5.测试


 @Test
 public void test1(){
  String[] conf = {"applicationContext.xml"};
  ApplicationContext ac =new ClassPathXmlApplicationContext(conf);
  AbcAction abc=(AbcAction) ac.getBean("abc");
  abc.getStrng();
  
 }

 

 

 

 

 

 

 

 

 

 

 

 

 


 
 
 
 
 
 
 
 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值