簡體   English   中英

如何在另一個類中使用值注釋?

[英]How can I use Value Annotations in another class?

我如何在這里獲得自己的價值並將其用於其他課程? 我想創建一個處理所有@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

您可以創建一個用@Configuration注釋的新屬性類。 在那里,您可以使用@Value注釋所需的所有屬性。 可以在需要屬性的所有其他彈簧組件類中將該類自動裝配。

這是Configuration類,在其中映射了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);
}
}

這對我有用。 希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM