Spring Boot Application.properties не работаетJAVA

Программисты JAVA общаются здесь
Anonymous
Spring Boot Application.properties не работает

Сообщение Anonymous »

У меня проблемы с получением Spring Boot (3.4.1), чтобы прочитать некоторые параметры из файла свойств. Я пытался использовать механизм по умолчанию, назвав мой файл приложение. Но так как я не мог заставить его работать, я решил пойти на путь внешнего файла свойств. Итак, мой код выглядит так: < /p>
@PropertySource("file:/home/user/myapp/myapp.properties")
@SpringBootApplication
public class MyApplication {
public static void main(String... args) {
SpringApplication.run(MyApplication.class, args);
}
}

Это кажется правильным, потому что, если я удаляю (или переименован) файл myapp.properties , когда я пытаюсь инициализировать приложение, он генерирует ошибку: приложение не удалось Чтобы запустить ресурс данных конфигурации 'file [/home/user/myapp/myapp.properties]' через местоположение 'file: //home/user/myapp/myapp.properties' не существует br /> Итак, если предположить, что пружина способна найти файл, я настроил свой компонент, чтобы прочитать параметр, подобный этому: < /p>
@RestController
public class MyAppController {

@Value("${staticRepo}")
private String staticRepo;

@GetMapping(value = "/api/myapp")
List getFoo() {
if (staticRepo== null || staticRepo.trim().isEmpty()) {
throw new InternalServerErrorException("MyApp is not configured properlly. Missing 'staticRepo' parameter in 'myapp.properties'");
}
return FooUtils.load(staticRepo);
}

Я дважды проверил параметр myapp.properties и имеет параметр staticrepo (файл содержит только 1 строку: staticrepo =/home/user/myapp/ Repo/)
Я нашел несколько сообщений с той же проблемой, но ни один не решил мою проблему. Из одного из этих сообщений я попытался указать файл свойств в командную строку следующим образом, но без удачи ... < /p>
java -jar /home/user/myapp/myapp.jar --spring.config.location=file:///home/user/myapp/myapp.properties

Итак, мой вопрос: что я делаю неправильно? P> Как предполагалось, я переименовал переменную для репо , и она все еще не сработала, и я также проверил аннотацию @Value . Я использую org.springframework.beans.factory.annotation.value .
И нет, это не глупая версия. Да, я изменил путь и переименовал приложение, но приложение - это именно то, что я опубликовал. Чтобы быть уверенным, используя мастер кода VS (v1.96.2) (Spring Initiazr Java Support v0.11.2) я сгенерировал новое приложение с нуля. Сам мастер создал файл приложения. И да, он печатает null на систему. Саут ... так что, вероятно, моя настройка испорчена ... кстати, это Ubuntu 24.04.2 LTS с OpenJDK 21.0.6. < /p>
@SpringBootApplication
public class DemoApplication {

@Value("${spring.application.name}")
private String name;

public static void main(String[] args) {
DemoApplication demo = new DemoApplication();
System.out.println(demo.getName());

SpringApplication.run(DemoApplication.class, args);
}

public String getName() {
return name;
}
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-working

Вернуться в «JAVA»