spring的aop配置有三种方式:
1.全注解
2.半注解半配置(自动配置,不需要手动配置)
3.无注解(全配置控制)
注:以上三种说法都是我自己说的,没有权威书籍认证的,该文写作目的仅仅以免以后有所遗忘,同时加深印象,如果有什么概念不对地方请体谅!如果内容有不对的地方请告知!我再去研究!
1.半注解半配置
我的第一个aop案例就是一个半注解半配置的例子
配置文件如下
<context:component-scan base-package="aoptest">
<context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
</context:component-scan>
<aop:aspectj-autoproxy/>
该配置自动扫描aoptest包下所拥有的注释,然后进行切面编程
2.无注解配置文件
<aop:config>
<aop:aspect ref="aspectbean">
<aop:after pointcut="execution(* test.*.*(..))" method="release"/>
<aop:after-returning pointcut="execution(* test.*.*(..))" method="log" returning="rvt"/>
<aop:around pointcut="execution(* test.*.*(..))" method="processTx"/>
<aop:before pointcut="execution(* test.*.*(..))" method="authority"/>
</aop:aspect>
</aop:config>
<bean id="aspectbean" class="test.aspect1"/>
<bean id="person" class="test.person">
它是一种以bean文件ref方式反射aop配置标签到ioc依赖注入bean当中让它解析当中 然后进行aop切面编程,所以整个程序不需要的注解@提示程序这里有一个bean将要解析
3.全注释配置文件
@Configuration
public class person {
@Bean
public person demo() {
System.out.println("人造1号初始化完毕!");
return new person();
}
}
这其实只是一个普通的Java文件 其中类被@Configuration修饰 方法被 @Bean修饰
但是自从spring3.0后,有了个新的容器初始化方法:AnnotationConfigApplicationContext 它的作用可以搜索包中被@的类和方法
其中@Configuration是@component的意思,被当做一个组件处理 @bean是一个标签bean的作用(但是作用没有标签Bean广)
这种采用了以@Configuration和@bean-------->组件类加上移动版的xml配置(而且浓缩在一个类中)更为简便!
但是全注解方式功能没配置多,而且出现时间也较配置短,所以现在以配置为主注解为辅的配置状态是最好的!