1. pom.xml文件导入坐标
<depenency> 注:此包会包含AOP的包
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</depenency>
<depenency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</depenency>
2. 制做连接点方法
@Repository
public class BookDaoImpl implements BookDao
{
public void save()
{
System.out.println(System.currentTimeMillis());
System.out.println("book dao save......");
}
public void update()
{
System.out.println("book dao update......");
}
}
3. 制做共性功能(通知类与通知)
public class MyAdvice
{
public void method()
{
System.out.println(System.currentTimeMillis());
}
}
4. 定义切入点:切入点定义依托一个不具有实际意义的方法进行,即无参数,无返回值 ,方法体无实际逻辑
public class MyAdvice
{
@Pointcut("execution(void com.feiyan.dao.BookDao.update())")
private void pt()
{
}
public void method()
{
System.out.println(System.currentTimeMillis());
}
}
5. 绑定切入步与通知关系(切面)
public class MyAdvice
{
@Pointcut("execution(void com.feiyan.dao.BookDao.update())")
private void pt()
{
}
@Before("pt()")
public void method()
{
System.out.println(System.currentTimeMillis());
}
}
6. 添加识注解
@Component
@Aspect
public class MyAdvice
{
@Pointcut("execution(void com.feiyan.dao.BookDao.update())")
private void pt()
{
}
@Before("pt()")
public void method()
{
System.out.println(System.currentTimeMillis());
}
}
7. 配置类添加注解
@Configuration
@ComponentScan("com.feiyan")
@EnableAspectJAutoProxy
public class SpringConfig
{
}
浙公网安备 33010602011771号