@Bean
@Override @ConditionalOnMissingBean public PlatformTransactionManager annotationDrivenTransactionManager() { return new DataSourceTransactionManager(dataSource); }@Bean
@ConditionalOnMissingBean public PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource); }@Bean
public TransactionInterceptor transactionInterceptor() { Properties attributes = new Properties(); attributes.setProperty("get*", "PROPAGATION_REQUIRED"); attributes.setProperty("put*", "PROPAGATION_REQUIRED"); attributes.setProperty("post*", "PROPAGATION_REQUIRED"); attributes.setProperty("delete*", "PROPAGATION_REQUIRED"); TransactionInterceptor txAdvice = new TransactionInterceptor(annotationDrivenTransactionManager(), attributes); return txAdvice; } @Bean public AspectJExpressionPointcut aspectJExpressionPointcut(){ AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); String transactionExecution = "execution(* " + getTransactionExecution() + "(..))"; if(transactionExecution==null) transactionExecution = "execution(* com.service.impl.*.*.*(..)) || execution(* com.business.impl.*.*.*(..)) "; pointcut.setExpression(transactionExecution); return pointcut; }@Bean
public DefaultPointcutAdvisor defaultPointcutAdvisor(){ DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(); advisor.setPointcut(aspectJExpressionPointcut()); advisor.setAdvice(transactionInterceptor()); return advisor; }