Вы можете использовать следующий код:
Класс конфигурации (помеченный @Component
для выбора Spring), который будет содержать значения, поступающие из файла свойств, где вы напрямую связываете значение bws.access.key
со свойством. А если вам нужны методы доступа для accessKey
, вы можете просто создать их (setAccessKey
и getAccessKey
)
@Component
public class ConfigClass {
// @Value("${bws.access.key:<no-value>}") // <- you can use it this way if you want a default value if the property is not found
@Value("${bws.access.key}") // <- Notice how the property is being bind here and not upon the method `setAccessKey`
private String accessKey;
// optional, in case you need to change the value of `accessKey` later
public void setAccessKey(String ak){
this.accessKey = ak;
}
public String getAccessKey() {
return this.accessKey;
}
}
Для более подробной информации ознакомьтесь с примером проекта GitHub .
Я проверял это с
- IntelliJ IDEA 2018.1.5 (Ultimate Edition), сборка № IU-181.5281.24
- SonarLint
( Редактировать ) Как использовать его в контроллере :
Опция (есть и другие) может состоять в том, чтобы объявить конструктор для контроллера (назовем его SampleController
) и запросить параметр типа ConfigClass
внутри него. Теперь мы устанавливаем атрибут контроллера (config
) того же типа на значение, полученное в качестве параметра, например:
@RestController
public class SampleController {
private final ConfigClass config;
public SampleController(ConfigClass configClass) { // <- request the object of type ConfigClass
this.config = configClass; // <- set the value for later usage
}
@RequestMapping(value = "test")
public String test() {
return config.getAccessKey(); // <- use the object of type ConfigClass
}
}
Теперь Spring Boot попытается найти компонент (любого типа) в приложении типа ConfigClass
, и, поскольку у нас есть такой компонент, он автоматически внедрит его в наш контроллер. Таким образом, вы можете установить для свойства контроллера параметра config
значение, полученное в configClass
для последующего использования.
Чтобы проверить это, вы можете запросить URL test
. Вы увидите, что на выходе будет anotherValue
. Таким образом, мы можем сделать вывод, что механизм внедрения зависимостей успешно нашел экземпляр ConfigClass
и метод ConfigClass#getAccessKey
работает правильно.