如何使用Spring创建配置类并在整个代码中共享数据?

时间:2019-01-27 15:27:55

标签: java spring spring-boot

我需要创建诸如Shared class之类的东西,可以通过以下方式使用:

Shared.getProperty(key);

我尝试使用Environment对象,但是它始终为null。应该在哪里指定以及如何指定? 我将.xml用于我的bean配置。 我也有application.properties,我要从中检索数据。

3 个答案:

答案 0 :(得分:1)

// Shared.java
@Component
@ConfigurationProperties("prefix.for.application.properties")
public class Shared {
    private String str;

    // getters, setters
}

// application.properties
prefix.for.application.properties.str=STR

// other code
@Autovired
private Shared shared;

shared.getStr(); 

答案 1 :(得分:0)

最好的方法是在application.properties文件中定义属性,然后可以使用@Value批注访问这些属性。

答案 2 :(得分:0)

我的方法是使用application.properties中的值,然后创建一个Configuration类,例如:

application.properties中定义常量

app.email_subject =My app Registration
app.email_from =Some person

带注释的类

@Configuration    
@ConfigurationProperties(prefix = "app")
public class GlobalProperties {

    @Value("email_subject")
    private String emailSubject;
    @Value("email_from")
    private String emailFrom;

    // getters and setters
}

您可以在任何需要的地方使用此类:

@Service
public class SomeService {
    @Autowired
    private GlobalProperties globalProperties;

    public someMethod() {
        System.out.println(globalProperties.getEmailFrom());
    }
}