当前位置:   article > 正文

(注解配置AOP)学习Spring的第十七天

(注解配置AOP)学习Spring的第十七天

 基于注解配置的AOP

来看注解式开发 : 

先把目标与通知放到Spring里管理  :

  1. @Service("userService")
  2. public class UserServiceImpl implements UserService {
  3. @Override
  4. public void show1() {
  5. System.out.println("show1......");
  6. }
  7. @Override
  8. public void show2() {
  9. System.out.println("show2......");
  10. }
  11. }

 看这个通知 ,加@Aspect开始编辑织入 , @Before()里放的是切入点配置:

  1. @Component
  2. @Aspect
  3. public class MyAdvice {
  4. // <aop:before method="beforeAdvice" pointcut-ref="execution(* com.itheima.service.impl.*.*(..))"/>
  5. @Before("execution(* com.itheima.service.impl.*.*(..))")
  6. public void beforeAdvice() {
  7. System.out.println("前置的增强....");
  8. }
  9. }

还需xml配置扫描注解的代码 ,如下 : 

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd
  11. http://www.springframework.org/schema/aop
  12. http://www.springframework.org/schema/aop/spring-aop.xsd
  13. ">
  14. <!--组件扫描-->
  15. <context:component-scan base-package="com.itheima"/>
  16. <!--使用注解配置AOP,需要开启AOP自动代理-->
  17. <aop:aspectj-autoproxy/>
  18. </beans>

 如此 , 注解配置就完成了

下图是整体配置信息对比

二 . 切点表达式的抽取

用@Poincut代替了

execution(* com.itheima.service.impl.*.*(..)) , 是操作更加方便

代码如下 :

  1. @Pointcut("execution(* com.itheima.service.impl.*.*(..))")
  2. public void myPoincut(){}
  3. // <aop:before method="beforeAdvice" pointcut-ref="execution(* com.itheima.service.impl.*.*(..))"/>
  4. @Before("MyAdvice.myPoincut()")
  5. public void beforeAdvice() {
  6. System.out.println("前置的增强....");
  7. }

三 .代替xml配置方式

新建一个SpringConfig配置类来管理扫描注解

代码如下

  1. @Configuration
  2. @ComponentScan("com.itheima") // <context:component-scan base-package="com.itheima"/>
  3. @EnableAspectJAutoProxy //<aop:aspectj-autoproxy/>
  4. public class SpringConfig {
  5. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/84826?site
推荐阅读
相关标签
  

闽ICP备14008679号