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;
}