我有一个Spring启动项目,在pom文件中声明了包装战争。
<packaging>war</packaging>
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.5.RELEASE</version>
<relativePath/>
</parent>
使用maven clean package命令,我能够构建war文件。下一步是使用启动war文件
java -jar <artifactId>.war --spring.config.name=application-<profile>
重要的是,我通过一个参数(spring.config.name)工作正常。但我的问题是,当我在雄猫环境中部署这场战争时,我如何才能通过这个论点?我在tomcat的webapps文件夹中复制战争。但是我能通过上面提到的论点吗?
编辑以获得更多澄清:我不是通过设置系统变量或其他方式来搜索解决方案。在我看来,一个合适的解决方案是在maven概要文件上进行配置。例如,如果我使用
mvn clean package -P<profile>
参数被传递到spring boot中的适当位置。
编辑2:我的Servlet初始实现器是从SpringBootServlet初始实现器扩展而来的,该扩展是从WebApplication ation初始实现器扩展而来的
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
我的应用程序类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
您可以通过上下文将上下文参数传递给servlet上下文。xml。将此添加为上下文。pom旁边的xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Context>
<Context>
<Parameter
name="spring.profiles.active"
value="${spring.profiles.active}"
override="false" />
</Context>
然后像这样使用maven war插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<containerConfigXML>context.xml</containerConfigXML>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
然后使用轮廓设置Spring。简介。活动属性。Spring实际上会在没有配置的情况下获取这些,但Spring Boot却不会。要使其在Spring Boot中工作,您可以使用如下内容:
package com.example;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
private ServletContext servletContext;
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder builder) {
String activeProfiles =
servletContext.getInitParameter("spring.profiles.active");
if (activeProfiles != null) {
builder.profiles(activeProfiles.split(","));
}
return builder.sources(DemoApplication.class);
}
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
this.servletContext = servletContext;
super.onStartup(servletContext);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
问题内容: 我正在A中使用RUN指令安装rpm 但是,我想将值“ 2.3”作为参数传递。我的RUN指令应类似于: 哪里 问题答案: 您正在寻找和指导。这些是Docker 1.9中的新功能。查看https://docs.docker.com/engine/reference/builder/#arg。这将允许您添加到,然后使用构建。
我有一个web项目与VM参数称为"-Dfile" 我在applicationContext上使用这个参数如下: 在Eclipse中,为了进行测试,我使用“运行配置”来设置如下值: 现在,我想在ApacheTomcat上测试我的webapp,所以我需要设置/发送folder VM参数。 我怎么做到的? 我必须使用setenv。嘘?怎样有人能给我举个例子吗? 谢谢对不起我的英语
问题内容: 我想将登录用户单击的sa 列表中的传递给twitter bootstrap 。我正在与 angularjs* 一起使用 grails ,其中数据是通过 angularjs 呈现的。 *** 组态 我的grails视图页面是 我的是 所以,我怎么能传递到? 问题答案: 我尝试如下。 我在 鼓励 按钮上打电话给angularjs控制器, 我设置的从angularjs控制器。 我提供了一个p
问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用:
问题内容: 我正在使用Go内置的http服务器,并拍拍来响应一些URL: 我需要向该处理函数传递一个额外的参数-一个接口。 如何向处理程序函数发送额外的参数? 问题答案: 通过使用闭包,您应该能够做您想做的事情。 更改为以下内容(未测试): 然后对
我在解一个有很多常数的非线性方程 我创建了一个用于解决以下问题的函数: 然后我想做: 但是正在解包并向函数传递太多参数,因此我得到: TypeError:terminalV()正好接受2个参数(给定6个) 那么,我的问题是,我是否可以通过某种方式将元组传递给调用的函数?