Я хочу получить доступ к некоторым значениям из моего файла application.properties, я пытался использовать метод ниже, но не получил значения.
файл application.property
welcome.message=My message
Мойконтроллер.java
@RestController
class MessageRestController {
@Autowired MainConfigFiles mainConfigFiles;
@Value("${welcome.message}")
private String message;
@RequestMapping("/message")
String getMessage() {
return this.message;
}
@RequestMapping("/message2")
String getMessage2() {
MainConfigFiles a = new MainConfigFiles();
String msg = a.getMessage2();
System.out.println("Msg is....."+msg);
return msg;
}
MainConfigFiles.java
@Configuration
@PropertySource(value = "application.properties")
public class MainConfigFiles {
@Value("${welcome.message}")
private String message2;
public String getMessage2() {
return message2;
}
}
Я могу получить значение, используя@RequestMapping("/message"), который упоминается в том же файле, но не может получить значение при использовании @RequestMapping("/message2"), который упоминается в другом классе.
И я запускаю клиент конфигурации в этом же проекте, и значение из application.propertie не обновляется после выполнения запроса POST на localhost: 8080/actuator/refresh
Пожалуйста, ответьте/примите/отредактируйте это... или задайте новый вопрос! :)




Сначала вам нужно прочитать значение welcome.message из файла application.properties и установить для него значение MainConfigFiles. Позже используйте этот класс MainConfigFiles (который вы уже используете @Autowire) и получите это сообщение.
Измените класс MainConfigFiles, как показано ниже.
public class MainConfigFiles {
Value("${welcome.message}")
private String message2;
Bean
public MainConfigFiles jpaConfig() {
MainConfigFiles mainConfigFiles = new MainConfigFiles();
mainConfigFiles.setMessage2(message2);
return mainConfigFiles;
}
public String getMessage2() {
return message2;
}
public void setMessage2(String message2) {
this.message2 = message2;
}
}
Это ваш MessageRestController.
@RestController
public class MessageRestController {
@Autowired
private MainConfigFiles mainConfigFiles;
@Value("${welcome.message}")
private String message;
@RequestMapping("/message")
String getMessage() {
return this.message;
}
@RequestMapping("/message2")
String getMessage2() {
String msg = mainConfigFiles.getMessage2();
System.out.println("Msg is....."+msg);
return msg;
}
}
Вы должны запрашивать «mainconfigfiles» как «bean» … не через
new. Итак: удалитеaи используйте вместо негоmainConfigFiles.getMessage2().