2016-11-18 19 views
-1

如何在這裏獲得我的價值並將其用於其他課程?我想創建一個處理所有@Value註釋的類,然後其他類可以從這個類中獲取這些值。一旦我學會了如何從另一個類獲取值我從主類更改爲一個新的類如何在其他課程中使用值註釋?

我怎樣才能得到這些變量

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
public class WebProperties { 

     @Value("${Application}") 
     private String app;  
     @Value("${APP_MEMORY_GREP_FOLDERS_APP}") 
     private String appFolder;   
     @Value("${APP_MEMORY_GREP_FOLDERS_OPT}") 
     private String optFolder; 
     //getters and setters 
}} 

要打印到主類

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
public class Application { 

    @Value("${Application}") 
    private String app; 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @PostConstruct 
    public void postConstruct() { 
     System.out.print("SampleApplication started: " + app); 
    } 
} 

而不必從頭再來打電話@Value

+0

爲什麼不把它注入其他需要的類? – Reimeus

回答

4

ÿ你可以創建一個用@Configuration註解的新的屬性類。在那裏你用你想要的所有屬性用@Value註釋你的字段。該類可以在需要屬性的所有其他彈簧組件類中自動裝配。

這是配置類,我我application.properties文件的屬性映射:

@Configuration 
public class MyProperties{ 

    @Value("{my.property}") 
    public String myProperty; 
} 

可以使用如下:

@Configuration 
@ComponentScan 
@EnableAutoConfiguration 
public class Application { 

@Autowired 
private MyProperties props; 

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
} 

@PostConstruct 
public void postConstruct() { 
    System.out.print("Print my property: " + props.myProperty); 
} 
} 

這對我的作品。 希望它能幫助你。

+0

當我做@autowired WebProperties時,我怎樣才能得到該類中的變量和值? – Jesse

+0

使領域公開或使用獲取者 – pDer666

+0

我有getters和setter,當我從其他類中檢索值時,它返回null。 – Jesse

相關問題