下面列出了怎么用org.springframework.boot.jms.XAConnectionFactoryWrapper的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
public void allDefaultBeansShouldBeLoaded() {
this.context = new AnnotationConfigApplicationContext(NarayanaConfiguration.class);
this.context.getBean(NarayanaBeanFactoryPostProcessor.class);
this.context.getBean(XADataSourceWrapper.class);
this.context.getBean(XAConnectionFactoryWrapper.class);
this.context.getBean(NarayanaPropertiesInitializer.class);
this.context.getBean(UserTransaction.class);
this.context.getBean(TransactionManager.class);
this.context.getBean(JtaTransactionManager.class);
this.context.getBean(RecoveryManagerService.class);
this.context.getBean(XARecoveryModule.class);
}
@Bean
@ConditionalOnMissingBean(XAConnectionFactoryWrapper.class)
public XAConnectionFactoryWrapper xaConnectionFactoryWrapper(TransactionManager transactionManager,
XARecoveryModule xaRecoveryModule, NarayanaProperties narayanaProperties) {
return new NarayanaXAConnectionFactoryWrapper(transactionManager, xaRecoveryModule, narayanaProperties);
}
@Primary
@Bean(name = { "jmsConnectionFactory", "xaJmsConnectionFactory" })
public ConnectionFactory jmsConnectionFactory(MQConfigurationProperties properties, ObjectProvider<List<MQConnectionFactoryCustomizer>> factoryCustomizers, XAConnectionFactoryWrapper wrapper) throws Exception {
MQXAConnectionFactory connectionFactory = new MQConnectionFactoryFactory(properties, factoryCustomizers.getIfAvailable()).createConnectionFactory(MQXAConnectionFactory.class);
return wrapper.wrapConnectionFactory(connectionFactory);
}
@Bean
XAConnectionFactoryWrapper xaConnectionFactoryWrapper() {
return connectionFactory -> (ConnectionFactory) connectionFactory;
}