在骆驼处理器中从 application.yml 注入

Injecting from application.yml in camel processor

我正在尝试从 application.properties 文件中注入 camel 处理器中的值,但它 returns null。我还尝试添加 @Component 注释,但这会破坏应用程序。

public class MyProcessor implements Processor {
 @Value("${myProperty.path}")
  public String path;
  public void process(Exchange exchange) throws Exception {
        System.out.println(path);
    }
}

我对 camel 和 spring 都是新手。我该怎么做才能从处理器 class 中的 application.properties 文件中读取属性?

属性 使用 @Value 注入仅适用于容器管理的 bean。

因此,您 @Component 的方向是正确的,但我怀疑(如评论中所述)您的 MyProcessor 不是这样的豆子。

如果你在你的 Camel 路线中做了其中一个,那么你的处理器就不是这样的 bean。

.process(MyProcessor.class)
.process(new MyProcessor())

相反,您必须使用 @Component 注释处理器,在 Camel Route class 中保存它的一个实例变量,然后引用该实例。

.process(myProcessorInstance) <-- variable