Spring 注解和AOP

markdown ### 注解 ```text 普通组件:@Component 标识一个受Spring IOC容器管理的组件 -- 持久化层组件:@Repository 标识一个受Spring IOC容器管理的持久化层组件 -- 业务逻辑层组件:@Service 标识一个受Spring IOC容器管理的业务逻辑层组件 -- 表述层控制器组件:@Controller 标识一个受Spring IOC容器管理的表述层控制器组件 ``` ```text #可以注入形参/方法参数 #自动注入 @Autowired #配合指定注入 @Qualifier(value = "beanId") ``` #### 扫描组件 ```text ``` #### 组件包含和排除 ```text #可以出现多个包含/多个排除,但是不可以同时出现 #将默认use-default-filters设置为false #将默认use-default-filters设置为ture ``` ### AOP ```text #xml配置开启自动代理 ``` #### 注解类型 ```text @Before:前置通知,在方法执行之前执行 @After:后置通知,在方法执行之后执行 @AfterRunning:返回通知,在方法返回结果之后执行 @AfterThrowing:异常通知,在方法抛出异常之后执行 @Around:环绕通知,围绕着方法执行 ``` #### 实例 ```text @Component @Aspect public class LoggerTest { // @Before(value = "bean(serviceTest)") @Before(value = "execution(public String net.monody.application.test.service.ServiceTest.test())") public void beforeMethod(JoinPoint joinPoint){ System.out.println(joinPoint.getSignature()); System.out.println(joinPoint.getKind()); System.out.println(Arrays.toString(joinPoint.getArgs())); System.out.println("切面启动"); } @AfterReturning(value = "execution(public String net.monody.application.test.service.ServiceTest.test())",returning = "o") public void afterMethod(Object o){ System.out.println("结果 " + o); System.out.println("切面完成"); } } ``` #### 优先级 ```text #优先级越高数字越小 @Order(1024) ``` *

*[返回教程主页](https://www.monody.net/p/blog-page_3.html)*

*

评论