Альтернатива, основанная на аннотации к & lt; tx: jta-transaction-manager / & gt; [Дубликат]

2
задан Anthony Accioly 15 July 2014 в 22:56
поделиться

1 ответ

Единственный способ, которым я знаю, - это реплицировать поведение парсеров пространства имен этих пользовательских пространств имен.

Итак, <jee:jndi-lookup> обрабатывается org.springframework.ejb.config.JndiLookupBeanDefinitionParser, а final создает компонент, который является экземпляром из JndiObjectFactoryBean с переданными атрибутами.

Аналогичным образом, <tx:jta-transaction-manager/> обрабатывается org.springframework.transaction.config.JtaTransactionManagerBeanDefinitionParser и на основе среды выполнения возвращает конкретный экземпляр класса.

Элементарной особенностью Spring 4, которую вы можете использовать, является @Conditional (ссылка здесь ). С @Conditional и с использованием условной реализации Spring-Boot , называемой ConditionalOnClass (ссылка здесь ), вы можете воспроизвести поведение <tx... примерно так:

@Configuration
@ConditionalOnClass(name="weblogic.transaction.UserTransaction")
public class WebLogicTxMgrConfig {

    @Bean
    public JtaTransactionManager txManager() {
        return new WebLogicJtaTransactionManager();
    }

}

Я знаю, что это не полный ответ, но, надеюсь, вам поможет создать соответствующую конфигурацию.

3
ответ дан Biju Kunjummen 27 August 2018 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: