基于注解的“零配置”方式

2019-06-29  本文已影响0人  Devil兵

Spring依然采用运行时生成动态代理的方式来增强目标对象,所以它不需要增加额外的编译,也不需要AspectJ的织入器支持;而AspectJ采用编译时增强,所以AspectJ需要自己的编译器来编译Java文件,还需要织入器。

Spring中启用对@AspectJ切面配置的支持:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:p="http://www.springframework.org/schema/p"

    xmlns:aop="http://www.springframework.org/schema/aop"

    xmlns:context="http://www.springframework.org/schema/context"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

        http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context

        http://www.springframework.org/schema/context/spring-context.xsd

        http://www.springframework.org/schema/aop

        http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">

     

        <!-- 启动@AspectJ支持 -->

        <aop:aspectj-autoproxy/>

   

</beans>

以及

<!-- 启动@AspectJ支持 -->

<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"/>

Spring应用中启动@AspectJ支持还需要在应用的类加载路径下添加AspectJ库:

aspectjweaver.jar

aspectjrt.jar

以上两个jar文件直接在AspectJ安装目录的lib中获取,Spring AOP还需要依赖aopalliance.jar。

上一篇下一篇

猜你喜欢

热点阅读