在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内容中定义需要增强的方法