Единственный способ, которым я знаю, - это реплицировать поведение парсеров пространства имен этих пользовательских пространств имен.
Итак,
обрабатывается org.springframework.ejb.config.JndiLookupBeanDefinitionParser
, а final создает компонент, который является экземпляром из JndiObjectFactoryBean
с переданными атрибутами.
Аналогичным образом,
обрабатывается org.springframework.transaction.config.JtaTransactionManagerBeanDefinitionParser
и на основе среды выполнения возвращает конкретный экземпляр класса.
Элементарной особенностью Spring 4, которую вы можете использовать, является @Conditional
(ссылка здесь ). С @Conditional и с использованием условной реализации Spring-Boot , называемой ConditionalOnClass
(ссылка здесь ), вы можете воспроизвести поведение
@Configuration
@ConditionalOnClass(name="weblogic.transaction.UserTransaction")
public class WebLogicTxMgrConfig {
@Bean
public JtaTransactionManager txManager() {
return new WebLogicJtaTransactionManager();
}
}
Я знаю, что это не полный ответ, но, надеюсь, вам поможет создать соответствующую конфигурацию.