@Component 创建类对象,相当于配置<bean/>
@Service 与 @Component 功能相同,建议写在ServiceImpl类上
@Repository 与 @Component 功能相同,建议写在数据访问层上
@Controller 与 @Component 功能相同,建议写在控制器类访问层上
@Resource (javax自带注解),默认按照byName注入,如果没有对象名称,按照byType注入
@Autowired (spring注解),默认按照byType注入
@Value() 获取properti文件中的内容 例如@Value("${my.value"}),注意需要添加properties文件路径
<context:property-placeholder location="classpath:db.properties,classpath:db2.properties"/>
@Pointcut()定义切点
@Pointcut("execution(* com.lee.service.Demo.demo())")
@Aspect 定义切面类
@Aspect
@Before()前置通知
@Before("com.lee.service.Demo.demo()")
@After() 后置通知
格式同Before
@AfterReturning() 后置通知,必须切点正确进行
格式同Before
@AfterThrowing ()异常通知
格式同Before
@Arround ()环绕通知
@Component
@Aspect
public class MyAdvice {
@Before("com.lee.service.Demo.demo()")
public void before() {
System.out.println("before");
}
@Around("com.lee.service.Demo.demo()")
public Object around(ProceedingJoinPoint pj) throws Throwable {
System.out.println("around-before");
Object result = pj.proceed();
System.out.println("around-after");
return result;
}
}