내 및 대상 pointcut 지정자 사이에 다른 점을 이해할 수 없습니다. 이 예에서 봐 :Spring AOP, 대상 지정자 내
@Component
public interface Icamera {
public void snap() throws Exception;
}
@Component
class Camera implements Icamera{
public void snap() throws Exception {
System.out.println("SNAP!");
}
}
@Aspect
@Component
public class Logger {
**@Pointcut("within(com.test.aop.Icamera)")**
public void cameraSnap() {
}
@Before("cameraSnap()")
public void beforeAdvice() {
System.out.println("Before advice ...");
}
@After("cameraSnap()")
public void afterAdvice() {
System.out.println("After advice ...");
}
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
Icamera camera=context.getBean(Icamera.class);
camera.snap();
}
}
출력은 다음과 같습니다 SNAP! 하지만 내부 대신 대상을 사용하면 출력은 다음과 같습니다. 사전 안내 ... 스냅! 통보 후 ...