-2
如何在java中配置基於註釋的彈簧方面?如何在java中配置基於註釋的彈簧方面
假設我們想攔截一個彈簧服務,我們通常通過AOP切入點表達來實現。這個例子詳細說明了如何使用註解來代替表達式。這在我們使用註釋時更加便於攜帶。
有很多例子,但很少有正確的內容。因此把它放在這裏...
這是一個解決的問題。我在春天張貼我的答案,因此幫助別人包括我自己在內。基於
如何在java中配置基於註釋的彈簧方面?如何在java中配置基於註釋的彈簧方面
假設我們想攔截一個彈簧服務,我們通常通過AOP切入點表達來實現。這個例子詳細說明了如何使用註解來代替表達式。這在我們使用註釋時更加便於攜帶。
有很多例子,但很少有正確的內容。因此把它放在這裏...
這是一個解決的問題。我在春天張貼我的答案,因此幫助別人包括我自己在內。基於
註釋AOP通知
1.定義註釋
public @interface ApplyAuthorisationAdvice {
}
春天配置文件設置<aop:aspectj-autoproxy />
如果
2.
import org.aopalliance.aop.Advice;
import org.aspectj.lang.annotation.Aspect;
@Aspect
@Component
public class AuthorisationAspect implements Advice {
private final static Logger logger = Logger.getLogger(AuthorisationAspect.class);
@Autowired
MyService myService;
@SuppressWarnings("unchecked")
@AfterReturning(pointcut = "@annotation(com.example.ApplyAuthorisationAdvice)", returning = "result")
public void afterReturning(JoinPoint joinPoint, Object result) {
if (result != null && (result instanceof List)) {
// filter stuff
}
}
}
3.A在服務pply註釋需要被截獲
@Component("myService")
public class MyServiceImpl implements MyService {
@ApplyAuthorisationAdvice
public List<MySummary> search(MyContext searchContext) {
}
}
更新與筆記的問題,它有助於澄清? – MountainRock
你也應該接受你的答案,以便其他人可以看到它。 – kazanaki