Задать вопрос
@turdubekov
Студент

Можно ли домен, логин и т.п прописать в properties?

Здравствуйте!
Пишу FTP client на Java (Spring boot), хочу внести домен, логин и пароль в application.properties файл, чтобы каждый раз не лезть в код для смены сервера.
Возможно ли это? Если да то можете пожалуйста поделится ссылками?
Сам гуглил но не нашел.

вопрос #2: Как можно внести properties за jar?

P.s я пока новичек, если вопросы кажется глупые, то извините)))

Заранее спасибо!
  • Вопрос задан
  • 1041 просмотр
Подписаться 2 Простой 3 комментария
Решения вопроса 3
BorLaze
@BorLaze
Java developer
хочу внести домен, логин и пароль в application.properties

можно, но не нужно
незачем такую информацию хранить в системе контроля версий (ты ж ее используешь, правда?)

Как можно внести properties за jar?

рядом с jar создаешь файл application.properties - данные из него перекроют те проперти, что прописаны в application.properties внутри jar

если приложение исполняется под каким-то другим профилем (dev, например), именуешь внешний проперти-файл соответственно (application-dev.properties).

должно работать
Ответ написан
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день!
Пожалуй, я лишь дополню ответ своего коллеги BorLaze некоторыми ссылками на полезные материалы.
1 - насчет вынесения properties файла за пределы приложения:
https://docs.spring.io/spring-boot/docs/2.1.8.RELE...
В частности обратите внимание на:

SpringApplication loads properties from application.properties files in the following locations and adds them to the Spring Environment:

A /config subdirectory of the current directory
The current directory
A classpath /config package
The classpath root

The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).


Вот, еще по этой же теме:
https://www.baeldung.com/spring-properties-file-ou...
Это Spring Boot + Docker: https://stackoverflow.com/questions/46057625/exter...
Вот, еще информация о том, как можно исключить внешний конфиг файл
https://stackoverflow.com/questions/26140784/sprin...
https://stackoverflow.com/questions/26744060/exclu...

Насчет хранения паролей в properties, вы можете воспользоваться - Jasypt
Ссылка на первоисточник: https://stackoverflow.com/questions/37404703/sprin...

Еще можно при старте приложения передать значения этих данных при помощи аргументов.
Т.е. хранить в properties что-то типа ftp.host=example.com А при старте приложения использовать что-то типа такого:
mvn spring-boot:run -Dspring-boot.run.arguments=--ftp.host=mysite.com

https://www.baeldung.com/spring-boot-command-line-...

В микросервисах подобная задача решается несколько иначе - поднятием отдельного конфиг сервера, который подтягивает конфигурацию извне при старте приложения. Но думаю, что это вам пока не нужно
Ответ написан
Комментировать
@VictorZZZZ
Не нужно этого делать. Пропиши у себя в Environments
типа
application-dev.yaml:
login: ${LOGIN}
password: ${PASSWORD}

А потом в Edit configurations... -> Environment Variables
добавляй свои спрятанные переменные. Спринг подтянет при запуске.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы