2016-01-28 3 views
0

Я упаковал приложение Spring Boot как файл .war, и он работает в Tomcat 7 по пути к файлу /opt/tomcat/webapps/myapp.war.Spring Boot .war в Tomcat - Могу ли я использовать внешний файл свойств?

Однако, я хотел бы использовать свойства из файла в файле /var/{filePath}/application.properties, где filePath пока неизвестен. Я прочитал Spring Boot docs, и я подозреваю, что лучший способ - использовать атрибут JNDI.

Я настроил ресурс в context.xml следующим образом:

<Resource auth="Container" type="java.lang.String" name="myProperties" url="/var/myDirectory/application.properties"/> 

Правильно ли это?

И если да, то как я могу вставить эти свойства в мое приложение Spring Boot, учитывая, что это - .war?

+0

Какие свойства? JNDI или те из файла свойств? –

+0

@ M.Deinum те из файла свойств :) –

+0

Просто добавьте '@ PropertySource' в свой класс конфигурации. Что указывает на 'файл:/var/{filePath}/application.properties'. Или просто используйте свойство 'spring.config.location' и зарегистрируйте это в JNDI (или SPRING_CONFIG_LOCATION), и это будет автоматически использовано Spring Boot для обнаружения' application.properties'. –

ответ

1

Отвечая на мой собственный вопрос :)

Я добавил следующее в моем Tomcat context.xml:

<Parameter name="agent-tools-api.properties" value="/var/zoona/agent-tools-api.properties" /> 

И добавил, соответствующее @PropertySources аннотации на Application.java:

@SpringBootApplication 
@PropertySources(@PropertySource(value = {"file:${agent-tools-api.properties}"})) 
public class Application extends SpringBootServletInitializer { 
    // Application class 
} 

Таким образом, он получает путь файла свойств от еще одно свойство. Немного запутанный, но он работает.

Комментарии приветствуются!

0

Я использовал что-то подобное в катализе tomcat, поскольку переменная среды и весна способны ее обнаружить.

экспорт SPRING_CONFIG_LOCATION =/кришна/Программное обеспечение/хранилище/CONF/Тримбл/application.properties

 Смежные вопросы

  • Нет связанных вопросов^_^