package egovframework.config; import egovframework.exception.EgovAopExceptionTransfer; import egovframework.exception.EgovDefaultExcepHndlr; import egovframework.exception.EgovDefaultOthersExcepHndlr; import org.egovframe.rte.fdl.cmmn.aspect.ExceptionTransfer; import org.egovframe.rte.fdl.cmmn.exception.handler.ExceptionHandler; import org.egovframe.rte.fdl.cmmn.exception.manager.DefaultExceptionHandleManager; import org.egovframe.rte.fdl.cmmn.exception.manager.ExceptionHandlerService; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.util.AntPathMatcher; @Configuration @EnableAspectJAutoProxy public class EgovConfigAspect { @Bean public EgovDefaultExcepHndlr egovHandler() { return new EgovDefaultExcepHndlr(); } @Bean public EgovDefaultOthersExcepHndlr otherHandler() { return new EgovDefaultOthersExcepHndlr(); } @Bean public DefaultExceptionHandleManager defaultExceptionHandleManager(AntPathMatcher antPathMatcher, EgovDefaultExcepHndlr egovHandler) { DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager(); defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher); defaultExceptionHandleManager.setPatterns(new String[]{"**service.impl.*"}); defaultExceptionHandleManager.setHandlers(new ExceptionHandler[]{egovHandler}); return defaultExceptionHandleManager; } @Bean public DefaultExceptionHandleManager otherExceptionHandleManager(AntPathMatcher antPathMatcher, EgovDefaultOthersExcepHndlr othersExcepHndlr) { DefaultExceptionHandleManager defaultExceptionHandleManager = new DefaultExceptionHandleManager(); defaultExceptionHandleManager.setReqExpMatcher(antPathMatcher); defaultExceptionHandleManager.setPatterns(new String[]{"**service.impl.*"}); defaultExceptionHandleManager.setHandlers(new ExceptionHandler[]{othersExcepHndlr}); return defaultExceptionHandleManager; } @Bean public ExceptionTransfer exceptionTransfer( @Qualifier("defaultExceptionHandleManager") DefaultExceptionHandleManager defaultExceptionHandleManager, @Qualifier("otherExceptionHandleManager") DefaultExceptionHandleManager otherExceptionHandleManager) { ExceptionTransfer exceptionTransfer = new ExceptionTransfer(); exceptionTransfer.setExceptionHandlerService(new ExceptionHandlerService[] { defaultExceptionHandleManager, otherExceptionHandleManager }); return exceptionTransfer; } @Bean public EgovAopExceptionTransfer aopExceptionTransfer(ExceptionTransfer exceptionTransfer) { EgovAopExceptionTransfer egovAopExceptionTransfer = new EgovAopExceptionTransfer(); egovAopExceptionTransfer.setExceptionTransfer(exceptionTransfer); return egovAopExceptionTransfer; } }