java的时候,首先要先了解Java框架,才能更好的学习它的内容。这篇文章主要介绍了Java的spring框架中AOP项目的一般配置和部署教程,AOP面向方面编程的项目部署结构都比较类似,因而也被看作是Spring的一种设计模式使用接下来,课课家小编就为大家介绍Java框架---springaop两种不同配置方式。
第一种:注解配置AOP
word-layer reader-word-s2-10">面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
注解配置AOP(使用AspectJ类库实现的),大致可以分为三步:
1.使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型
(@Before,@AfterReturning,@After,@AfterThrowing,@Around).
2.开发需要被拦截的类。
3.将切面配置到XML中,当然,我们也可以使用自动扫描Bean的方式。这样的话,那就交由SpringAoP容器管理。
另外需要引用aspectJ的jar包:aspectjweaver.jaraspectjrt.jar.然后我们写一个接口和一个实现接口,使用Spring注解方式对这个Bean进行方法拦截:
然后就利用上面的步骤对以下内容进行操作:
然后下面的注解就比较简单了,就是在使用方法前和中,还有环绕拦截/然后在Spring的配置文件中继续配置Bean,需要打开AOP命名空间
注意:在编写 AspectJ 切面时,可以直接在通知注解中书写切入点表达式,但同一个切点表达式可能会在多个通知中重复出现。在 AspectJ 切面中,可以通过 @Pointcut 注解将一个切入点声明成简单的方法。切入点的方法体通常是空的,因为将切入点定义与应用程序逻辑混在一起是不合理的。切入点方法的访问控制符同时也控制着这个切入点的可见性。如果切入点要在多个切面中共用,最好将它们集中在一个公共的类中。在这种情况下,它们必须被声明为 public。在引入这个切入点时,必须将类名也包括在内。如果类没有与这个切面放在同一个包中,还必须包含包名。其他通知可以通过方法名称引入该切入点。
配置文件:
测试类:
结果你就可以看到以下图片内容:
注意:
1.@Aspect:意思是这个类为切面类
2.@Componet:因为作为切面类需要spring管理起来,所以在初始化时就需要将这个类初始化加入Spring的管理;
3.@Before:切入点的逻辑(Advice)
4.execution…:切入点语法
第二种:xml配置aop
实例同上:只是配置文件不同
在Spring xml配置中,对于不同命名空间的配置信息采用不同的Handler
下面的<beans>是Spring的配置标签,beans里面几个重要的属性:
xmlns:
是默认的xml文档解析格式,即spring的beans。地址是http://www.springframework.org/schema/beans。
通过设置这个属性,所有在beans里面声明的属性,可以直接通过<>来使用,比如<bean>等等。
xmlns:xsi:
是xml需要遵守的规范,通过URL可以看到,是w3的统一规范,后面通过xsi:schemaLocation来定位所有的解析文件。
xmlns:aop:
这个是重点,是我们这里需要使用到的一些语义规范,与面向切面AOP相关。
xmlns:tx:
Spring中与事务相关的配置内容。
一个XML文件,只能声明一个默认的语义解析的规范。
例如上面的xml中就只有beans一个是默认的,其他的都需要通过特定的标签来使用,比如aop,它自己有很多的属性,如果要使用,前面就必须加上aop:xxx才可以。比如上面的aop:config。
类似的,如果默认的xmlns配置的是aop相关的语义解析规范,那么在xml中就可以直接写config这种标签了。