一:多profiles切换
yml支持多模块文档块
server:
port: 8081
spring:
profiles:
active: dev #要激活的环境
--- #开发环境
spring:
profiles: dev
server:
port: 8082
--- #生产环境
spring:
profiles: prod
server:
port: 8083
推荐使用不同的配置文件做多环境配置,在配置文件名称加-后缀,后缀名即为环境名
image.png
激活指定配置文件的方法
- 直接在application.yml的配置文件中使用 spring.profiles.active=dev|prod
- 设置虚拟机参数 -Dspring.profiles.active=dev|prod
- 命令行参数启动:java -jar app.jar --spring.profiles.active=prod
二:SpringBoot打包问题
打成指定jar名称
<build>
指定打包的文件名称
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
若工程中有多个mainclass,需要指定主启动类
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.zzw.AppApplication</mainClass>
</configuration>
<goals>
<goal>repackage</goal>
</goals>
</plugin>
</plugins>
</build>
如何打成一个war包
-
修改pom文件,将打包方式改成war
image.png - 添加Tomcat依赖,修改scope
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--只在编译或者测试的时候使用-->
<scope>provided</scope>
</dependency>
- 修改主启动类
@SpringBootApplication
public class SpringBootDemoApp extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApp.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringBootDemoApp.class);
}
}
- 打成war包,放到tomcat上运行