前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Springboot的开发环境(dev)、测试环境(beta)和生产环境(product)打包部署

Springboot的开发环境(dev)、测试环境(beta)和生产环境(product)打包部署

作者头像
别先生
发布于 2020-10-30 02:26:24
发布于 2020-10-30 02:26:24
3.1K00
代码可运行
举报
文章被收录于专栏:别先生别先生
运行总次数:0
代码可运行

1、在项目开发过程中需要考虑不同的运行环境:开发环境(dev)、测试环境(beta)和生产环境(product)。在以往的开发过程中通常使用Maven构建工具进行控制,但却需要进行大量的配置。SpringBoot考虑到此类问题,专门设计了profile支持。

  备注:尤其是项目开发完毕,在正式环境部署的时候出现问题,进行本地调试的时候就头疼了,因为正式环境的参数配置都和本地不一样,所以使用Springboot的profile配置就极大节省了时间,也简化了操作,方便自己使用,避免了搞不清那些配置是正式的,那些是本地环境的。

2、首先,创建开发环境,测试环境,生产环境的三种配置文件,外加application.properties配置文件,如下所示:

  application-beta.properties、application-dev.properties、application-product.properties三个配置文件分别指定项目的端口号为8082、8083、8084,application.properties配置文件指定激活的环境,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 spring.profiles.active=beta

为了使项目正常进行打包,还需要修改pom.xml文件,追加resource配置,主要的功能是进行源文件夹中内容的打包输出,配置完成后可以将配置文件打包到*.jar文件中。,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 <?xml version="1.0"?>
 2 <project
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
 4     http://maven.apache.org/xsd/maven-4.0.0.xsd"
 5     xmlns="http://maven.apache.org/POM/4.0.0"
 6     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 7     <modelVersion>4.0.0</modelVersion>
 8 
 9     <parent>
10         <groupId>com.bie</groupId>
11         <artifactId>springboot-base</artifactId>
12         <version>0.0.1-SNAPSHOT</version>
13     </parent>
14 
15     <!-- 父项目已经指定,这里可以省略 -->
16     <!-- <groupId>com.bie</groupId> -->
17     <artifactId>springboot-tentent</artifactId>
18     <!-- <version>0.0.1-SNAPSHOT</version> -->
19     <name>springboot-tentent</name>
20     <url>http://maven.apache.org</url>
21 
22     <properties>
23         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
24     </properties>
25 
26     <dependencies>
27         <dependency>
28             <groupId>org.springframework.boot</groupId>
29             <artifactId>spring-boot-starter-web</artifactId>
30         </dependency>
31         <dependency>
32             <groupId>org.springframework.boot</groupId>
33             <artifactId>spring-boot-starter-test</artifactId>
34             <scope>test</scope>
35         </dependency>
36         <dependency>
37             <groupId>junit</groupId>
38             <artifactId>junit</artifactId>
39             <scope>test</scope>
40         </dependency>
41         <dependency>
42             <groupId>org.springframework.boot</groupId>
43             <artifactId>spring-boot-starter-jetty</artifactId>
44         </dependency>
45     </dependencies>
46 
47     <build>
48         <plugins>
49             <!-- 该插件的主要功能是进行项目的打包发布处理 -->
50             <plugin>
51                 <groupId>org.springframework.boot</groupId>
52                 <artifactId>spring-boot-maven-plugin</artifactId>
53                 <!-- 设置程序执行的主类 -->
54                 <configuration>
55                     <mainClass>org.springboot.tentent.Springboot01Application</mainClass>
56                 </configuration>
57                 <executions>
58                     <execution>
59                         <goals>
60                             <goal>repackage</goal>
61                         </goals>
62                     </execution>
63                 </executions>
64             </plugin>
65         </plugins>
66         <resources>
67             <resource>
68                 <directory>src/main/resources</directory>
69                 <includes>
70                     <include>**/*.properties</include>
71                     <include>**/*.yml</include>
72                     <include>**/*.xml</include>
73                     <include>**/*.tld</include>
74                 </includes>
75                 <filtering>false</filtering>
76             </resource>
77             <resource>
78                 <directory>src/main/java</directory>
79                 <includes>
80                     <include>**/*.properties</include>
81                     <include>**/*.xml</include>
82                     <include>**/*.tld</include>
83                 </includes>
84                 <filtering>false</filtering>
85             </resource>
86         </resources>
87     </build>
88 
89 
90 </project>

修改完pom.xml配置文件之后,记得更新项目,Maven -> Update Project。此时开始,为项目打包,这里直接通过Eclipse进行打包配置,如下所示:

由于在application.properties指定的是spring.profiles.active=beta,所以如果直接运行打好的jar包,那么运行的就是测试环境的端口号,项目打包完成后运行程序,如果不做出任何的指定,那么默认配置的活跃profile(beta)就将直接起作用(java -jar xxx.jar)。

如果想要切换到不同的profile环境,可以在启动时动态配置(java -jar .\springboot-parent.jar --spring.profiles.active=product),如下所示:

演示效果,如下所示:

注意:*.properties与*.yml配置不同。

  使用application.yml进行多profile配置的时候,只需要在一个配置文件中使用“---”分割不同的profile配置。但是此类模式不适合于application.properties配置,此时应该采用不同的*.properties保存不同的配置,才可以实现多profile。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
还不会SpringBoot项目模块分层?来这手把手教你
经常看到网上很多优秀的开源项目中,代码简洁,模块分层完美。反观自己代码层级混乱,,却不知如何整理分层。此文手把手教你一步一步创建模块,左手右手一个慢动作。结合本人实际开发及个人项目中分层思路的分享,大神请勿喷。
JavaDog程序狗
2024/10/11
1.1K0
还不会SpringBoot项目模块分层?来这手把手教你
SpringBoot基础(二、原理分析)
接着上一篇SpringBoot基础(一、快速入门)的介绍,我们来简单的谈谈SpringBoot的原理分析。
营琪
2019/11/04
4600
框架 | SpringBoot项目创建和发布部署步骤
如何创建Spring Boot项目? 1 技术选型 JDK1.7、MYSQL57、Spring Boot、Logback、Mybatis 2 开发工具 Myeclipse、Maven、Linux 3 数据库设计 表名:userinfo 结构如下: CREATE TABLE `userinfo` ( `id` int(20) NOT NULL AUTO_INCREMENT, `username` varchar(20) DEFAULT NULL, `password` varchar(20) D
码神联盟
2018/06/04
5.3K2
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?
Java团长
2019/08/05
6460
提升10倍生产力:IDEA远程一键部署SpringBoot到Docker
SpringBoot多文件配置根据环境加载不同配置
在平时开发时,会发现公司的项目会不同的环境使用到不同的配置。如本地,测试,预发布,发布等环境,像数据库这些都要使用到不同的配置。如果只有一个配置文件,发布到不同环境的时候都要去修改一遍那简直就是遭罪,那么,如何实现SpringBoot根据需要去加载不同的配置文件?
青衫染红尘
2021/01/19
2.1K0
SpringBoot多文件配置根据环境加载不同配置
SpringBoot之部署以及Maven打包切换环境
前言:之前一直用的 Java-jar 运行的,但是部署的时候得停止服务 通过端口kill 掉的,最近在推酷上发现一个安全关闭springboot的博客 ,所以自己整理(搬运)一下。主要是英语有点差,最近也比较忙就没有关注springboot更新的文档。、
王念博客
2019/07/24
1.1K0
springboot打包部署的那些事
springboot-maven-plugin打包的第一级目录为Boot-INF,如果不做任何配置,直接mvn clean package会发现无法把本地的jar打进Boot-INF中,则此时要做如下配置
lyb-geek
2018/09/27
8.4K0
springboot打包部署的那些事
Springboot的项目如何打成war包
1、在SpringBoot中默认支持Tomcat容器,所以当一个SpringBoot项目打包生成*.jar文件,并且直接执行的时候就会自动启动内部的Tomcat容器。除了此种模式之外,也可以将Web项目打包为*.war文件,采用部署的形式通过Tomcat进行发布处理,这种方式和传统模式比较类似,打成war包丢到tomcat里面进行运行。
别先生
2020/10/30
2.4K0
Springboot的项目如何打成war包
springboot跳转原生html项目结构pomapplication.ymlcontroller
项目结构 pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
用户5899361
2020/12/07
5280
springboot跳转原生html项目结构pomapplication.ymlcontroller
使用Maven构建的Springboot父子工程的项目打包部署
1、SpringBoot作为微架构的主要实现技术,其发布项目的方式极为简单,只需要在项目中配置好插件,然后打包执行就可以了,并且这个执行不需要特别复杂的配置。
别先生
2020/10/30
2.2K0
使用Maven构建的Springboot父子工程的项目打包部署
spring-boot-starter大力出奇迹
​  上篇文章我们已经聊了SpringBoot的启动过程中的各类扩展点,那么从http://start.spring.io上我们生成的demo项目中,到目前就剩下了maven工程的pom.xml还没有进行探索了,那么本文我们就来看看这里面到底都有啥,把大力出奇迹的常见spring-boot-starter来聊一聊,以便更好地使用SpringBoot.
阿豪聊干货
2018/08/09
1K0
springboot分环境配置文件
这里只是为了演示,具体几个配置文件还得根据需求来,有的还有什么UAT环境、灰度环境等,不过没什么,无非就是再添加配置文件和相应pom文件调整一下罢了。另外application.properties中最好放置一些不会改变的配置项,比如说端口。
田维常
2019/07/30
9030
springboot分环境配置文件
聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}
在 SpringBoot 项目中,我们经常会使用两种占位符(有时候还会混用),它们分别是:
xiaoxi666
2021/12/14
5.8K0
聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}
第十二节:Springboot多环境配置
系列文章 第一节:创建SpringBoot项目并运行HelloWorld 第二节:SpingBoot单元测试 第三节:SpringBoot中web项目推荐目录结构 第四节:SpringBoot中web模版数据渲染展示 第五节:SpringBoot常用注解介绍 第六节:SpingBoot基本配置一 第七节:SpringBoot高级属性配置二 第八节:SpringBoot指定配置文件配置三 第九节:SpringBoot在线文档Swagger2入门 第十节:SpringBoot中的日志管理 第十一节:Spring
入门笔记
2022/06/02
3260
Spring boot(4)-应用打包部署
Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat、weblogic等等),当然在此之前你要对程序入口做简单调整。
黄规速
2022/04/14
1.5K0
Spring boot(4)-应用打包部署
SpringBoot入门建站全系列(一)项目建立
个人对SpringBoot的理解:就是一Spring大杂烩,把Spring的一些组件,或者跟Spring有联系的组件整合在一起,方便使用。
品茗IT
2019/07/31
7310
SpringBoot初级开发
jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件。
楠羽
2023/10/17
2310
SpringBoot初级开发
SpringBoot项目如何进行打包部署
springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为spring
编程软文
2018/06/20
1K0
补习系列-springboot项目基础搭建课
springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推广因素不说,框架本身的确有非常多的优点。比如
美码师
2018/08/27
4530
spring整合中间件(kafka、RabbitMQ、ActiveMQ、ZeroMQ、TubeMQ、NSQ)-kafka
上文:spring整合中间件(RocketMQ、kafka、RabbitMQ、ActiveMQ、ZeroMQ、TubeMQ、NSQ)
逍遥壮士
2021/04/13
9670
spring整合中间件(kafka、RabbitMQ、ActiveMQ、ZeroMQ、TubeMQ、NSQ)-kafka
相关推荐
还不会SpringBoot项目模块分层?来这手把手教你
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验