导读
- AOP 面向切面编程 Aspect oriented Programming
- OOP 面向对象编程 Object oriented Programming
- 作用:在不惊动原始设计的基础上进行功能增强。
1、导入坐标
<!-- aop面向切面 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.19</version>
<scope>runtime</scope>
</dependency>
2、在SpringConfig上开启@EnableAspectJAutoProxy
@Configuration
@ComponentScan("cn.tjhis")
@PropertySource({"classpath:druid.properties"})
@Import({DbConfig.class,MybatisConfig.class})
@EnableAspectJAutoProxy
public class SpringConfig {
}
3、开发切面
- 前提:只有在执行
ProductInfoService
的save
方法时,会触发。
@Component
@Aspect
public class MyAdvice {
@Pointcut("execution(void cn.tjhis.service.ProductInfoService.save())")
private void execute(){};
@Before("execute()")
public void method(){
System.out.println(LocalDateTime.now());
}
}
- 通过
service.getClass()
可以看到被代理的那个对象