Spring-Boot 多模块项目加载属性文件
2022-09-02 01:48:02
我有一个Spring-Boot-Application作为maven中的多模块项目。结构如下:
Parent-Project
|--MainApplication
|--Module1
|--ModuleN
在项目中,有带批注的方法类,依此类推。与往常一样,此项目具有自动加载的 application.properties 文件。因此,我可以通过注释访问值MainApplication
main()
@SpringBootApplication
@Value
@Value("${myapp.api-key}")
private String apiKey;
在我的 Module1 中,我还想使用一个属性文件(称为 module1.properties),其中存储了模块配置。此文件将仅在模块中访问和使用。但我无法加载它。我试过了,但没有运气。@Configuration
@PropertySource
@Configuration
@PropertySource(value = "classpath:module1.properties")
public class ConfigClass {
如何使用Spring-Boot加载属性文件并轻松访问这些值?找不到有效的解决方案。
我的配置
@Configuration
@PropertySource(value = "classpath:tmdb.properties")
public class TMDbConfig {
@Value("${moviedb.tmdb.api-key}")
private String apiKey;
public String getApiKey() {
return apiKey;
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
调用配置
@Component
public class TMDbWarper {
@Autowired
private TMDbConfig tmdbConfig;
private TmdbApi tmdbApi;
public TMDbWarper(){
tmdbApi = new TmdbApi(tmdbConfig.getApiKey());
}
当我自动连接warper时,我在构造函数中得到了一个NullPointerException。