2016-08-06 3 views
1

私のラクダやスプリングブートアプリケーションでは、簡単なルートがあります:folder-> processor-> folder。@Serviceと@Repository beansはSpringブートとApache camelで初期化されていません

プロセッサでは、サービスとリポジトリは常にnullです。テストクラスでは、これらはnullではありません。

@Override 
public void configure() throws Exception 
{ 
    from("file:input") 
    .log("from file") 
    .process(new MyProcessor()) 
    .to("file:destination") 
    .log("to destination")` 
    .end(); 
} 

私には何もありません。なぜリポジトリとサービスBeanがプロセッサ内でヌルなのですが、テストクラスで正常に動作しますか?

答えて

1

new MyProcessor()経由でプロセッサを手動で作成しています。つまり、Springは依存関係を自動生成しません。

代わりCamel Bean supportを使用する必要があります。

@Override 
public void configure() throws Exception 
{ 
    from("file:input") 
    .log("from file") 
    .bean("myProcessor") 
    .to("file:destination") 
    .log("to destination")` 
    .end(); 
} 

それとも、あなたのMyProcessor BeanはキャメルのProcessorを実装する場合、あなたはこのような何か行うことができます:

@Autowired 
private MyProcessor processor; 

@Override 
public void configure() throws Exception 
{ 
    from("file:input") 
    .log("from file") 
    .processor(processor) 
    .to("file:destination") 
    .log("to destination")` 
    .end(); 
} 
関連する問題