现在,我在处理器中获取objectMapper,如下所示:
.process(exchange -> {
var objectMapper = getContext().getRegistry()
.lookupByNameAndType("json-jackson", ObjectMapper.class);
...
我尝试使用@BeanInject("json-jackson")
注入该对象,但是我猜我没有正确使用它,因为它为null。我没有使用Spring或Guice,只是使用了普通的Java,而是使用new
初始化了路由生成器。
此外,我尝试将查找放入路由生成器的构造函数中,但在那里收到空值。
答案 0 :(得分:0)
如果您不使用任何IoC框架并通过new
自己创建类,则不会自动发生依赖项注入。然后,您需要查找并自行设置对象。例如,您可以向其添加getter / setter,然后通过new
创建它,然后查找对象并随后调用setter。
如果您有权访问CamelContext
,则可以像上面一样进行查找,否则,您将需要通过实际使用的注册表(如果使用的是JNDI或其他方式)进行查找。注意Camel默认情况下将使用JNDI注册表,但是您可以在创建CamelContext实例时将其提供给CamelContext。
如果您有CamelContext
,也可以使用其注入器创建一个新实例,该实例对依赖项注入提供一些支持(如果使用Camel的注释)。 getInjector
中有一个CamelContext
,该API应该具有通过类类型创建新实例的API。