У меня есть Spring-Boot-Application как мультимодуль-проект в maven. Структура выглядит следующим образом:
Parent-Project
|--MainApplication
|--Module1
|--ModuleN
В проекте MainApplication
имеется класс метода main()
аннотированный с помощью @SpringBootApplication
и т.д. Этот проект имеет, как всегда, файл application.properties, который загружается автоматически. Поэтому я могу получить доступ к значениям с @Value
аннотации @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());
}
Я получаю исключение NullPointerException в конструкторе, когда я autowire warper.