在骆驼处理器中从 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
我正在尝试从 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