一、Aop常用注解
想在除法方法前后各种通知,引入切面编程
2.3 MyAspect新建一个切面类MyAspect并为切面类新增两个注解
@SpringBootTest
@RunWith(SpringRunner.class) //1.5.9
public class T1
{
@Autowired
private CalcService service;
System.out.println("spring版本:"+ SpringVersion.getVersion()+"\t"+"SpringBoot版本:"+
SpringBootVersion.getVersion());
System.out.println();
calcService.div(10,2);
}
Spring4默认用的JDK的动态代理
3.2 Spring5+Springboot2.3.3@SpringBootTest //spring5
public class T1{
@Autowired
private CalcService service;
@Test
public void testAop4(){
System.out.println("spring版本:"+ SpringVersion.getVersion()+"\t"+"SpringBoot版本:"+
SpringBootVersion.getVersion());
System.out.println();
calcService.div(10,2);
}
}
Spirng5默认动态代理用的是cglib,不再是JDK的动态代理,因为JDK必须要实现接口,但有些类它并没有实现接口,所以,更加通用的话就是cglib。
四、结论Spring4 正常执行:@Before->@After->@AfterReturning
有异常执行:@Before->@After->@AfterThrowing
Spring5
正常执行:@Before->@AfterReturning->@After
有异常执行:@Before->@AfterThrowing->@After
视频教程