KKB : springAOP 使用 AspectJ 依赖--注解开发、增强的流程顺序

在IOC中,我们可以通过配置文件和注解方式实现对象容器的管理和依赖注入

同样的,在AOP中也同样有两种方式,一种是配置文件,另外一种是注解的方式

导入依赖包

 <dependencies>
        <dependency>
            <groupId>aopalliance</groupId>
            <artifactId>aopalliance</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.13</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
    </dependencies>

编写配置文件:先扫描所有的注解包 然后开启 aop注解

<?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: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/aop
       http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.2.xsd">

    <!--扫描注解包-->
    <context:component-scan base-package="atshiyou"></context:component-scan>
    <!--启用aop注解-->
    <aop:aspectj-autoproxy/>
</beans>

项目的结构

在dao层一般建议使用@Repository

在service层一般使用@Service,service还要考虑依赖注入

注意:给类加注解,不会给接口加注解,因为加注解的意义是将该类加载进IOC容器,创建出对象给程序员调用,接口无法实例化

核心的注解是对于AOP的注解

1、首先将增强类加入到容器中,然后需要标记为增强类

@Component注解将该类加载进容器,@Aspect提醒配置文件,它是一个切面

2、定义切点,方法的名称随意取,@Pointcut内容中定义需要增强的方法

执行结果:

一张图说明几大增强的流程顺序

猜你喜欢

转载自blog.csdn.net/awodwde/article/details/112848159