59.8.3. 从端点 URI 引用 Bean
使用 URI 语法配置端点时,您可以使用 # 表示法引用 registry 中的 Bean。 如果 URI 参数值以 # 符号开头,则 Camel CDI 将按名称查找给定类型的 bean,例如:
from("jms:queue:{{destination}}?transacted=true&transactionManager=#jtaTransactionManager").to("...");
使用以下 CDI 符合 @Named ("jtaTransactionManager"):
@Produces
@Named("jtaTransactionManager")
PlatformTransactionManager createTransactionManager(TransactionManager transactionManager, UserTransaction userTransaction) {
JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();
jtaTransactionManager.setUserTransaction(userTransaction);
jtaTransactionManager.setTransactionManager(transactionManager);
jtaTransactionManager.afterPropertiesSet();
return jtaTransactionManager;
}