1.多环境配置
#激活哪一个环境的配置文件
spring.profiles.active=dev
application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境
2. 发布打包
2.1 使用Spring Boot Maven插件打包成可运行的jar
SpringBoot包含一个Maven插件,它可以将项目打包成一个可执行jar。如果想使用它,你可以将该插件添加到<plugins>节
<packaging>jar</packaging>
<build>
<finalName>spring-boot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
到jar或war 包目录下执行 java -jar <name>.war或java -jar <name>.jar
如D:\workFile\test\spring-boot-dmeo\target>java -jar spring-boot.war
注:如果使用Spring-Boot-starter-parent pom,你只需要添加该插件而无需配置它,
除非你想改变定义在partent中的设置。
该配置会在Maven生命周期的 package阶段重新打包一个jar或war。下面的示例显示在target目录下既有重新打包后的jar,
也有原始的jar,上面就是继承了它,所以配置比较简单,否则要多配点
需要注意的一点是,spring-boot官方建议入口函数Application.java
要放到根目录。
如果Application.java
不在根目录下,或有多个入口或报错没有主清单,可以修改pom.xml
如下配置指定入口文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.alen.springboot.demo.SpringBootDemoApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
访问路径:http://localhost:端口号/请求的名
2.2 打包成不可运行的jar
打包成不可运行的jar时不要配置spring-boot-maven-plugin此插件,要不会报错
2.3 把包成可运行的war
2.3.1 使用SpringBoot自带tomcat运行--打包形式
在pom.xml里设置
<packaging>war</packaging>
八宝,直接D:\workFile\test\spring-boot-dmeo\target>java -jar spring-boot.war运行
2.3.2 使用外部的tomcat运行--打包形式
1. 移除嵌入式tomcat插件,想放到自己的容器里运行就排除SpringBoot自带的
在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 去除内嵌tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
2. 修改启动类,并重写初始化方法
我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
@SpringBootApplication
public class GardenplusCaseWebApplication {
public static void main(String[] args) {
SpringApplication.run(GardenplusCaseWebApplication .class, args);
}
}
我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
@SpringBootApplication
public class GardenplusCaseWebApplication extends SpringBootServletInitializer {
/**
* 重写方法
* @param application
* @return
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(GardenplusCaseWebApplication.class);
}
}
2.4 打包部署
在项目根目录下(即包含pom.xml的目录),在命令行里输入:
mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。
然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署
或者到jar或war 包目录下执行 java -jar <name>.war,测试两种方式都行,注意tomcat的版本
最后在浏览器中输入
访问路径:http://localhost:端口号/war包的名称/请求的名
SpringBoot2.0 servlet.context-path = /projectName 已经失效
已经改为了:server.servlet.context-path : /projectName
server.servlet-path设定dispatcher servlet的监听路径,默认为: