Spring AOP四种实现方式(2)

public class StuTest {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Sleepable s=(Sleepable)context.getBean("Service");
        s.sleep();
    }
}

复制代码

4、通过<aop:config>来配置(纯POJO切面)

<aop:advisor> 定义一个AOP通知者
<aop:after> 后通知
<aop:after-returning> 返回后通知
<aop:after-throwing> 抛出后通知
<aop:around> 周围通知
<aop:aspect>定义一个切面
<aop:before>前通知
<aop:config>顶级配置元素,类似于<beans>这种东西
<aop:pointcut>定义一个切点

public class MyAspect {
 public void mybefore(){
   
        System.out.println("前置增强");
 }
 public String myafterReturning(String Returning){
   
        System.out.println("前置增强");
        return Returning;
}
}


public class IserviceImpl implements Iservice{

public void log() {
        System.out.println("开启事务");
       
    }

public String dofirst() {
        System.out.println("记录日志");
        return "";
       
    }


}

Spring的配置文件:

<!-- 目标对象 -->
  <bean></bean>

<!-- 切面: -->
  <bean></bean>
  <!-- 配置切面 -->
  <aop:config>
  <!-- 配置切入点 -->
      <aop:pointcut expression="execution(public * *..Iservice.log(..))"/>
      <!-- 将类方法定义为最终增强并引用pointcut切入点-->
      <aop:aspect ref="myAspect">
          <aop:after method="myafterReturning" pointcut-ref="pointcut"/>
      </aop:aspect>
  </aop:config>

测试类

public class SpringTest {
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Iservice bean = (Iservice)context.getBean("Service");
        bean.log();
        String count=bean.dofirst();
        System.out.println(count);
    }
}

Spring AOP自定义注解方式实现日志管理

Spring AOP进行日志记录 

使用Spring AOP进行性能监控 

利用Spring AOP 更新Memcached 缓存策略的实现 

Spring AOP的两种代理  

Spring AOP的注解实例

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4179ac9b828aa429b4be3655399705c1.html