小编Ste*_*huk的帖子

@target和@within之间的区别(Spring AOP)

春季手册说:

目标对象具有@Transactional批注的任何连接点(仅在Spring AOP中执行方法):@target(org.springframework.transaction.annotation .Transactional)

目标对象的声明类型具有@Transactional注释的任何连接点(仅在Spring AOP中是方法执行):@within(org.springframework.transaction.annotation .Transactional)

但是我看不出它们之间有什么区别!

我试图用谷歌搜索它:

两者之间的区别是@within()是静态匹配的,要求相应的注释类型仅具有CLASS保留。而@target()是在运行时匹配的,因此要求将其保留为RUNTIME。除此之外,在Spring上下文中,两个选择的连接点之间没有区别。

因此,我尝试添加具有CLASS保留的自定义注释,但是Spring抛出异常(因为注释必须具有 RUNTIME保留)

java aop spring aspectj spring-aop

2
推荐指数
1
解决办法
2661
查看次数

标签 统计

aop ×1

aspectj ×1

java ×1

spring ×1

spring-aop ×1