在外部文件夹war文件命令中运行classpath Spring java

时间:2016-12-19 10:31:06

标签: java spring spring-boot properties-file

我有一个war包,想要包含一个外部类路径:

在我的控制器中:

我有以下代码:

WebApplication类:

"Hello"

控制器类:

@SpringBootApplication
@PropertySource( "classpath:config.properties" )
public class WebApplication{

   public static void main(String[] args){
        SpringApplication.run(WebApplication.class, args);
   }
}

我的文件夹:

  

| -project

@Controller
@PropertySource( "classpath:config.properties" )
public class ApplicationController{

     //doing some stuff here

}

然而,当我建立

  

project.war

我放入远程服务器(unix):

  

|项目

|-src
   |-main
     |-java
       |-com.mypage.temp
         |-WebApplication.java (main class)
       |-com.mypage.temp.controller
         |-ApplicationController (Controller)
     |-resources
       |- [some stuff & not putting my properties file here to include externally]
     |-deploy
       |-config.properties
     

东西/东西/东西/ bin中/ project.war   东西/东西/东西/配置/ config.properties

运行命令:

  

java -jar -Dclasspath = / something / something / something / config / config.properties project.war

错误:

  |-bin
    |-project.war
  |-config
    |-config.properties

1 个答案:

答案 0 :(得分:1)

official documentation开始,Spring Boot依赖于spring.config.location Spring Boot属性来指定环境属性文件的位置。
您可以在命令行中提供它。

  

您还可以使用。来引用显式位置   spring.config.location环境属性(以逗号分隔的列表   目录位置或文件路径。)

     

$ java -jar myproject.jar --spring.config.name = myproject or

     

$ java -jar myproject.jar   --spring.config.location =类路径:/default.properties,classpath:/override.properties

所以,试试看:

java -jar project.war --spring.config.location=classpath:/something/something/something/config/config.properties