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

时间:2020-09-14 00:56:06

标签: spring-boot apache-camel

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

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

我是骆驼和春天的新手。我该怎么做才能从处理器类的application.properties文件中读取属性?

1 个答案:

答案 0 :(得分:2)

使用Error in match.names(clabs, names(xi)) : names do not match previous names 进行属性注入仅适用于容器托管的bean。

因此,您在@Value上走的路正确,但我怀疑(如评论中所述)您的@Component不是这样的bean。

如果您在骆驼路线中执行其中一项操作,则说明您的处理器不是这样的bean。

MyProcessor

相反,您必须使用.process(MyProcessor.class) .process(new MyProcessor()) 注释处理器,将其实例变量保存在Camel Route类中,然后引用该实例。

@Component