8.4.5 基于注解的 零配置 方式 1. 定义切面Bean
当启动了@AspectJ
支持后,只要在Spring
容器中配置一个带@Aspect
注解的Bean
,Spring
将会自动识别该Bean
,并将该Bean
作为切面处理。
在Spring容器中配置切面Bean与配置普通Bean一样
在Spring
容器中配置切面Bean
(即带@Aspect
注解的Bean)
与配置普通Bean
没有任何区别,一样使用<bean>
元素进行配置,一样支持使用依赖注入来配置属性值;如果启动了Spring
的”零配置”特性,一样可以让Spring
自动搜索,并加载指定路径下的切面Bean
。
使用@Aspect
标注一个Java
类,该Java
类将会作为切面Bean
,如下面的代码片段所示。
1 | // 使用Aspect定义一个切面类 |
切面类(用@Aspect
修饰的类)和其他类一样可以定义方法
、定义成员变量
,还可能包括切入点、增强处理定义。
当使用@Aspect
来修饰一个Java
类之后, Spring
将不会把该Bean
当成组件Bean
处理,因此负责自动增强的后处理Bean
将会略过该Bean
,不会对该Bean
进行任何增强处理。
开发时无须担心使用@Aspect
定义的切面类被增强处理,当Spring
容器检测到某个Bean
类使用了Aspect
修饰之后, Spring
容器不会对该Bean
类进行增强。