2017-03-12 15 views
0

私はelasticsearchクライアント(ElasticClientConfig.java)の設定プロパティを保持する単純なクラスを定義しています。Autowired spring beanはヌルです

私は自分の開発環境、プロダクト環境、テスト環境用に定義された構成を持っています。各構成プロファイルには、ElasticClientConfig型のBeanを戻すメソッドがあり、環境固有のパラメーターを使用してMyConfigオブジェクトを構築します。それは私が@Autowiredアノテーションを使用しElasticClientConfigオブジェクトを注入

<context-param> 
     <param-name>spring.profiles.active</param-name> 
     <param-value>dev</param-value> 
    </context-param> 

、しかし:私のweb.xmlファイルで「DEV」として、私は私のアクティブなプロファイルを設定

@Configuration 
@Profile("dev") 
public class DevConfig { 

    @Bean 
    public ElasticClientConfig getElasticClientConfig(){ 
      //build the ElasticSearchConfig and return it 
    } 

} 

:ここでは開発のためのバージョンです無効である。私がチェックできるものについてのアイデア?私の春-servlet.xmlファイルは非常に簡単です:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> 

    <context:component-scan base-package="com.elasticapp" /> 

    <mvc:annotation-driven /> 

    <bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix"> 
      <value>/WEB-INF/views/</value> 
     </property> 
     <property name="suffix"> 
      <value>.jsp</value> 
     </property> 
    </bean> 
    <bean class="com.elasticapp.client.ElasticClient"/> 
</beans> 

ElasticClientは私がにElasticClientConfigを注入していたクラスです。

答えて

0

依存性注入がどのように機能するのか忘れました。コンストラクタ内のautowiredプロパティにアクセスしようとしていました。 @PostConstructを使うことにしました。

関連する問題