2016-12-21 17 views
-1

@ConfigurationPropertiesを使用してプロパティファイルからプロパティをバインドしようとしています。しかし、私はそれらの値を実際にnullまたはJavaのデータ型のデフォルト値を持つことを印刷しようとするとき。下のjava &プロパティファイルはすべて同じパッケージに入っています。@ConfigurationPropertiesは値をバインドしません。データ型のnull値またはデフォルト値の取得

@SpringBootApplication 
@ComponentScan 
@EnableConfigurationProperties 
public class SimpleMain { 


    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     ApplicationContext ctx = SpringApplication.run(BeanLoader.class, args); 
     PropertyLoader pl = ctx.getBean(PropertyLoader.class); 
     System.out.println(pl.getName()); 
    } 

} 


import org.springframework.boot.context.properties.ConfigurationProperties; 


@ConfigurationProperties("test") 
public class PropertyLoader { 

    private String name; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 


} 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 

@Configuration 
public class BeanLoader { 

    @Bean 
    public PropertyLoader getPropertyLoader(){ 
     return new PropertyLoader(); 
    } 
} 


application.properties  

test.name=karthik 
+0

に交換する必要がありますなぜあなたは新しい 'AnnotationConfigApplicationContext'を作成し、それから豆を取得しようとしている。ここで

は、コードのですか?なぜ2つの 'PropertyLoader'ビーンを定義しようとしていますか? –

+1

'@ Component'を使用しないでください。 – chrylis

+0

私はそれをautowireすることができますが、AnnotationConfigApplicationContextはBeanをロードする際に問題になるべきではありません。 – karthik

答えて

0
ApplicationContext ctx = SpringApplication.run(BeanLoader.class, args); 

ApplicationContext ctx = SpringApplication.run(SimpleMain.class, args); 
関連する問題