0
메서드가 throw하는 예외 유형에 따라 여러 AfterThrowing 조언 메커니즘을 만들려고합니다. 호출되지 않습니다. 다음은 코드 스 니펫입니다.AfterThrow 예외 유형에 따라 조언
메서드가 throw하는 예외 유형에 따라 여러 AfterThrowing 조언 메커니즘을 만들려고합니다. 호출되지 않습니다. 다음은 코드 스 니펫입니다.AfterThrow 예외 유형에 따라 조언
이것은 나를 위해 아름답게 작동합니다. 난 당신의 구성에서 유일하게 누락 된 부분이 @ComponentScan이라고 생각합니다. 하지만 그게 당신의 설정 클래스에 따라서 많은 것을 귀찮게하지 않을 것이라고 믿습니다. @ComponentScan을 추가하지 않으면 aspect가 전혀로드되지 않습니다.
다음은 내 AppConfig 클래스입니다.
@Configuration
@ComponentScan("com.stackoverflow.aopquestion")
@EnableAspectJAutoProxy
public class AppConfig {
}
내 주요 클래스
public class ApplicationMain {
public static void main(final String[] args) {
final AnnotationConfigApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class);
// appContext.scan("com.stackoverflow.aopquestion");
// appContext.refresh();
final FatalAppExceptionGenerator exGen = (FatalAppExceptionGenerator) appContext
.getBean("fatalappExceptionGenerator");
try {
exGen.throwingFatalApp();
}
catch (final FatalApplicationError e) {
// TODO Auto-generated catch block
// e.printStackTrace();
}
}
}
그리고 마지막으로 내 측면은
@Component
@Aspect
public class AnAspect {
@Pointcut(value = "within(com.stackoverflow.aopquestion.*)")
public void allExceptionPointcuts() {
}
@AfterThrowing(value = "allExceptionPointcuts()", throwing = "ex")
public void doCheck(final FatalApplicationError ex) {
System.out.println("Invoked the afterthrowing aspect");
// ex.printStackTrace();
}
@Before(value = "within(com.stackoverflow.aopquestion.FatalAppExceptionGenerator+) && execution(* throwingFatalApp(..))")
public void doValidate(final JoinPoint jp) {
System.out.println("Invoking before advice");
}
}
그리고 여기가 출력됩니다. 조언이 afterthrowing 측면을 호출
Jan 20, 2014 1:31:32 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh INFO: Refreshing org.spring[email protected]3a6af2fb: startup date [Mon Jan 20 13:31:32 IST 2014]; root of context hierarchy Jan 20, 2014 1:31:32 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in org.s[email protected]418f12dc: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,appConfig,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,anAspect,fatalappExceptionGenerator,org.springframework.aop.config.internalAutoProxyCreator]; root of factory hierarchy
호출하기 전에
그 중 하나의 매개 변수 이름을 변경해보십시오. ex에서 ex1 일 수 있습니까? –