2017-08-23 59 views
1

当我使用可执行.jar我的项目,我可以把我的application.properties文件放到同一文件夹中我.jar,我的所有属性值将延长application.properties文件中读取。独立application.properties为Tomcat容器

我的问题是:有可能使这样的.wartomcat服务器?

[更新]

答案是:在独立的Tomcat,你将不得不把一个application.properties<tomcat>/bin

由于@Strelok

回答

3

您可以运行与spring.config.location属性设置您的应用程序到使用file:协议的文件路径:

# will look for /etc/myapp/application.properties 
-Dspring.config.location=file:/etc/myapp/ 

# will look for /etc/myapp/custom.properties 
-Dspring.config.location=file:/etc/myapp/custom.properties 
个 那些总是搜索

预设配置位置:

  1. 文件:./配置/
  2. 文件:./
  3. 类路径:/配置/
  4. 类路径:/

Spring Boot的文档Externalized Configuration部分有更多信息。

+0

如果春季检查'文件:/'(与'.war'相同的文件夹)为什么当我把我的配置那里(在tomcat服务器内),我的应用仍然得到来自编译配置的数据(在'.war'内部)?但是对于可执行文件'.jar',它工作正常 –

+1

Tomcat从war文件运行应用程序和'waroded'文件夹,而不是直接从war文件运行。 – Strelok

+0

如果我把'app.war'放到'webapps'中,我应该放'application.properties'文件? –

1

请参阅适用于您的Tomcat版本的Tomcat类加载器,以了解所有类加载器都可用。根据这一点,您可以将应用程序属性文件添加到Shared或Common类加载器,方法是将其保存在适当的目录中,并将该目录添加到catalina.properties文件中的类加载器条目中。 Tomcat 7文档不显示共享类加载器,但catalina.properties确实有占位符。如果共享的工作,去那,而不是共同Tomcat 7 Classloader

+0

你的意思是我可以把我的'application.properties'放到任何文件夹中,将这个文件夹的路径添加到'catalina.properties'文件,tomcat会从我的配置文件中读取我的env属性? –

+1

是的。检查catalina.properties,会有像'shared.loader ='和'common.loader'这样的占位符。如果共享不起作用,则优先使用'shared.loader'并回退到'common.loader'。请不要更改'server.loader'。 – Gautam