Announcement Announcement Module
Collapse
No announcement yet.
Custom AnnotationTransactionAttributeSource with aspectj Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Custom AnnotationTransactionAttributeSource with aspectj

    Hi there,

    I'm using a custom AnnotationTransactionAttributeSource to use my custom annotation instead of Spring @Transactional annotation.

    I use below BeanFactoryPostProcessor to change original AnnotationTransactionAttributeSource with my own one.

    Code:
    public class CustomTransactionalConfigurer implements BeanFactoryPostProcessor {
    
    	@Override
    	public void postProcessBeanFactory(
    			ConfigurableListableBeanFactory beanFactory) throws BeansException {
    		
    		String[] beanNames = beanFactory.getBeanNamesForType(AnnotationTransactionAttributeSource.class);
    		for(String beanName : beanNames) {
    			BeanDefinition def = beanFactory.getBeanDefinition(beanName);
    			def.setBeanClassName("com.example.transaction.CustomAnnotationTransactionalAttributeSource");
    		}
    		
    	}
    Everything works fine when application context configured with

    <tx:annotation-driven transaction-manager="txManager"/>

    But I want to enable aspectj mode

    <tx:annotation-driven transaction-manager="txManager" mode="aspectj"/>

    When I enable aspectj mode getBeansNamesForType method returns an empty list so my custom annotation becomes useless and Spring Transactional annotation starts working since I can not change bean definition.

    Any ideas?
Working...
X