如何在Spring中存储可以全局访问的对象

时间:2019-05-13 12:29:44

标签: spring

假设我有一个将在启动期间加载的许可证文件。然后,文件中的数据将存储到许可证对象。如何通过Spring方式使该对象可用于不同的组件/服务?

3 个答案:

答案 0 :(得分:1)

您的问题有多种解决方案。最简单的方法是执行以下操作:

@Configuration
public class LicenseConfig {
  @Bean
  public MyLicense getLicense() {
    // Do stuff and return the license object.
  }
}

然后您可以@Autowire MyLicense对象。

答案 1 :(得分:0)

如果将文件构建为属性文件,则可以按@Value轻松访问数据。

例如,您创建具有以下kv对的属性文件:value.from.file=TestTest

@Value("${value.from.file}")
private String valueFromFile; // Contains TestTest

Source

答案 2 :(得分:0)

创建对象并用@Configuration对其进行标记。在您的application.properties文件中,添加文件条目。

@Configuration
public class ApplicationLicense {

    @Value("${myapp.license.version}")
    String version;

    @Value("${myapp.license.code}")
    String license;

    @Value("${myapp.license.expiry}")
    String expiry;
}