一.Spring 随手笔记
- 注解使用
扫描包哪个包下有注解
<context:component-scan
base-package="com.bjsxt.advice"></context:component-s
@Component(“自定义名称”) | 相当于bean, 没有参数的话就类名首字母小写等于id |
---|---|
@Aspect 相当于aop:aspect/表 | 标记切面 |
一个完整的AOP实现
1.切面类
@Component
public class Demo {
@Pointcut("execution(*
com.bjsxt.test.Demo.demo1())")
public void demo1() throws Exception{
// int i = 5/0;
System.out.println("demo1");
}
}
2.通知类
@Component
@Aspect
public class MyAdvice {
@Before("com.bjsxt.test.Demo.demo1()")
public void mybefore(){
System.out.println("前置");
}
@After("com.bjsxt.test.Demo.demo1()")
public void myafter(){
System.out.println("后置通知");
}
@AfterThrowing("com.bjsxt.test.Demo.demo1()")
public void mythrow(){
System.out.println("异常通知");
}
@Around("com.bjsxt.test.Demo.demo1()")
public Object myarround(ProceedingJoinPoint p) throws
Throwable{
System.out.println("环绕-前置");