Springboot项目部署及多环境开发

本文介绍了如何将SpringBoot项目部署到服务器,包括代码打包、通过jar运行,以及配置属性的多种方式,如命令行参数、环境变量和外部配置文件,以及处理多环境开发时的配置优先级和SpringProfiles的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目部署

        我们之前写的代码都是部署在本地的tomcat上,别人是无法访问我们写的程序的。在实际开发中,我们都要将开发完毕的项目部署到公司的服务器上。

        我们的代码需要经过编译打包生成一个jar包,这个过程需要借助一个插件来实现。

创建springboot的时候已经自动添加上了,如果没有就自己加上。

我们将一个maven项目打包,需要执行的命令是package,双击package

打包好的项目就在target目录下

假设我们现在是一个服务器电脑,我们收到了这个jar包,怎么运行使用呢?

找到项目所在的文件目录下,打开cmd输入指令 java -jar 即可运行

这样的话项目就部署好了。

注:部署服务器必须要有jre的环境才行。


二、属性配置方式

        我们在开发环境上一般都是用properties或yaml文件进行配置,但是当我们将项目打包好之后,使用者客户是无法这样更改属性的。因此需要别的方式来更改属性。

1、命令行参数方式

         在 cmd 中输入:        --键=值 

如更改端口就是 --server.port=9090,将来传递过来的这个参数会被放到main方法的String[] args中,启动应用后又将数组传递给了run方法

注:Ctrl + c即可快速停止运行程序

成功生效

2、环境变量方式

直接在环境变量-用户变量中新增一个

这次就不用在后面加上--server.port=7777了,直接启动

注:记得把命令窗口也重启一个,不然不会生效

3、外部配置文件

如果此时配置信息有很多,那么前面两种方法就很麻烦了。

因此我们直接在jar包旁边提供一个yml配置文件,这样就可以批量更改配置信息了

配置优先级

如果我们同时使用多种配置方式来配置同意一个属性,那么此时的优先级别为

则优先级高的配置属性会生效


三、多环境开发

程序有可能会运行在多个环境上,常见的环境有三种

开发环境、测试环境、生产环境

不同环境下程序的配置信息也会有所不认同,如数据库

因此我们需要为每一种环境提供一份独立的配置信息。

Spring Profiles

springboot提供的profiles可以用来隔离应用程序的各个部分,并在特定的环境下指定部分配置生效。

使用方式

1、单文件开发

现在重启一个项目,打开一个yml文件,以端口号为例,演示不同的环境下的使用方式

#通用信息,指定生效的环境
spring:
  profiles:
    active: dev

#有共性的信息,如响应path
server:
  servlet:
    context-path: /wal

---
#开发环境
spring:
  config:
    activate:
      on-profile: dev

server:
  port: 8081


---
#测试环境
spring:
  config:
    activate:
      on-profile: test

server:
  port: 8082

---
#生产环境
spring:
  config:
    activate:
      on-profile: pro

server:
  port: 8083

---用来分割不同的环境,首先就要指定on-profile属性,这是该环境的名字。dev,test,pro

最上面的通用环境指定当前激活使用哪一个环境,也可以写这三个环境都有的属性,如path等等。

注意:如果通用环境与单个环境都配置了同一个属性,那么单个环境中配置的属性优先级更高会生效

        这种开发方式的缺点十分明显,我们仅仅是配置了一个端口号而已,就写了这么多行代码。假设以后开发要写上百条配置,那么文件的可读性就约等于没有了,维护十分困难。

2、多文件开发

不要将配置统统挤在一个文件中,最好还是分开文件来写

直接 application-当前环境名字

application.yml

#通用信息,指定生效的环境
spring:
  profiles:
    active: pro

application-pro.yml

#开发环境
server:
  port: 8082

这里面就不用再写spring:
                                  config:
                                    activate:
                                      on-profile: pro了,直接一个port:8082,启动程序后就显示8082了

这样干净整洁,层次分明。但是由于单个文件中的配置众多,三个写出来是依旧难以维护

分组

为了解决这个问题,我们可以将配置信息拆分再重新分组

不将配置文件开发、测试、生产等环境区分

而是分成配置文件以功能区分

这样在application.yml文件中active激活使用的就不是单个文件了,而是一个配置文件组成的分组

​​​​​​​

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

An1ong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值