주석 기반의 AOP 조언을 내 대답을 게시하고
1.define
전에 완료되지 않은 경우
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 annotation
@Component("myService")
public class MyServiceImpl implements MyService {
@ApplyAuthorisationAdvice
public List<MySummary> search(MyContext searchContext) {
}
}
질문을 메모로 업데이트했습니다. 명확하게 설명하는 데 도움이됩니까? – MountainRock
다른 사람들이 볼 수 있도록 답을 받아 들여야합니다. – kazanaki