用于Java EE环境的的注释等效项
我怎样才能实现与此类似的东西:
使用注释?
@Configuration @EnableTransactionManagement public class AppConfig { @Bean public DataSource dataSource() { // What goes here? } @Bean public PlatformTransactionManager txManager() { // What goes here? } }
我已经看过很多关于DataSourceTransactionManager
和BasicDataSource
的例子,但我找不到等效的注释驱动配置(找到容器UserTransaction
等)。
我所知道的唯一方法是复制这些自定义命名空间的名称空间解析器的行为。
因此,
由org.springframework.ejb.config.JndiLookupBeanDefinitionParser
处理,最终创建一个bean,它是传入属性的JndiObjectFactoryBean
实例。
类似地,
由org.springframework.transaction.config.JtaTransactionManagerBeanDefinitionParser
处理,并基于运行时环境返回类的特定实例。
你可以使用Spring 4的一个简洁function是@Conditional
( 这里引用)。 使用@Conditional并使用名为ConditionalOnClass
的Spring-Boot条件实现( 此处引用),您可以复制
@Configuration @ConditionalOnClass(name="weblogic.transaction.UserTransaction") public class WebLogicTxMgrConfig { @Bean public JtaTransactionManager txManager() { return new WebLogicJtaTransactionManager(); } }
我知道这不是一个完整的答案,但希望能帮助您创建相关配置。