抛出建议后,委托服务
AfterThrowing advice, delegate to service
我有这样的 aop xml 配置:
<aop:config>
<aop:pointcut id="serviceMethod" expression="execution(* egovframework.example..impl.*Impl.*(..))" />
<aop:aspect ref="exceptionTransfer">
<aop:after-throwing throwing="exception" pointcut-ref="serviceMethod" method="transfer" />
</aop:aspect>
</aop:config>
<bean id="exceptionTransfer" class="bla.bla.DefaultExceptionTransfer">
</bean>
您可以看到 <aop:aspect ref="exceptionTransfer">
行表明该方面是 link 与下面的 bean 编辑的。
现在我想将其转换为基于 java 注释。我做了什么:
@Configuration
@Aspect
public class ContextExceptionHandlerAspectConfiguration {
@Pointcut("execution(* egovframework.example..impl.*Impl.*(..))")
public void serviceAnnotation() { }
//HOW TO WRITE AFTER THROWING
@Bean
public ExceptionTransfer exceptionTransfer() {
return new DefaultExceptionTransfer();
}
}
问题是我不知道如何将代码写入 link 具有异常传输的方面。请帮忙,谢谢
如何实现此目的的一个示例是使用 @AfterThrowing,如下例所示:
@Slf4j
@Aspect
@Component
public class LoggingAspect {
@AfterThrowing(value = "execution(* com.amitph.spring.aop.service.FileSystemStorageService.readFile(..))",
throwing = "ex")
public void logAfterThrowing(JoinPoint joinPoint, Exception ex) {
log.error("Target Method resulted into exception, message {}", ex.getMessage());
notificationService.error(ex.getMessage());
}
}
我有这样的 aop xml 配置:
<aop:config>
<aop:pointcut id="serviceMethod" expression="execution(* egovframework.example..impl.*Impl.*(..))" />
<aop:aspect ref="exceptionTransfer">
<aop:after-throwing throwing="exception" pointcut-ref="serviceMethod" method="transfer" />
</aop:aspect>
</aop:config>
<bean id="exceptionTransfer" class="bla.bla.DefaultExceptionTransfer">
</bean>
您可以看到 <aop:aspect ref="exceptionTransfer">
行表明该方面是 link 与下面的 bean 编辑的。
现在我想将其转换为基于 java 注释。我做了什么:
@Configuration
@Aspect
public class ContextExceptionHandlerAspectConfiguration {
@Pointcut("execution(* egovframework.example..impl.*Impl.*(..))")
public void serviceAnnotation() { }
//HOW TO WRITE AFTER THROWING
@Bean
public ExceptionTransfer exceptionTransfer() {
return new DefaultExceptionTransfer();
}
}
问题是我不知道如何将代码写入 link 具有异常传输的方面。请帮忙,谢谢
如何实现此目的的一个示例是使用 @AfterThrowing,如下例所示:
@Slf4j
@Aspect
@Component
public class LoggingAspect {
@AfterThrowing(value = "execution(* com.amitph.spring.aop.service.FileSystemStorageService.readFile(..))",
throwing = "ex")
public void logAfterThrowing(JoinPoint joinPoint, Exception ex) {
log.error("Target Method resulted into exception, message {}", ex.getMessage());
notificationService.error(ex.getMessage());
}
}