Spring Boot多环境配置与打包运行

Spring Boot项目配置与运行示例

以下是一个基于 Maven 的 Spring Boot 项目的配置和运行介绍,结合了多环境构建参数的使用,并展示了如何打包成可运行的 JAR 文件。

1. 项目结构

一个典型的 Spring Boot 项目结构如下:

复制代码
springboot-multi-environment
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com.example.demo
│   │   │       └── DemoApplication.java
│   │   └── resources
│   │       ├── application.properties
│   │       ├── dev.properties
│   │       └── prod.properties
├── pom.xml

2. pom.xml 配置

xml 复制代码
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>springboot-multi-environment</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

3. 资源文件配置

3.1 application.properties

properties 复制代码
spring.datasource.url=${db.url}
spring.datasource.username=${db.username}
spring.datasource.password=${db.password}

3.2 dev.properties

properties 复制代码
db.url=jdbc:mysql://localhost:3306/dev_db
db.username=dev_user
db.password=dev_password

3.3 prod.properties

properties 复制代码
db.url=jdbc:mysql://prod.example.com:3306/prod_db
db.username=prod_user
db.password=prod_password

4. 启动类 DemoApplication.java

java 复制代码
package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

5. 打包与运行

5.1 打包为可运行 JAR

执行以下命令将项目打包为可运行的 JAR 文件:

bash 复制代码
mvn clean package

生成的 JAR 文件位于 target 目录下,例如:springboot-multi-environment-1.0-SNAPSHOT.jar。

5.2 运行 JAR 文件

bash 复制代码
java -jar springboot-multi-environment-1.0-SNAPSHOT.jar

5.3 指定环境

在运行时指定环境参数,例如使用开发环境:

bash 复制代码
java -Denv=dev -jar springboot-multi-environment-1.0-SNAPSHOT.jar

或者使用生产环境:

bash 复制代码
java -Denv=prod -jar springboot-multi-environment-1.0-SNAPSHOT.jar

6. 项目说明

  • Spring Boot:简化了 Spring 应用的初始搭建和开发。
  • Maven:用于项目依赖管理、构建和打包。
  • 多环境支持:通过资源过滤功能,实现不同环境的配置切换。
  • 可运行 JAR :使用 spring-boot-maven-plugin 插件将项目打包为可直接运行的 JAR 文件。

以上是一个完整的 Spring Boot 项目配置和运行示例,适用于实际开发中的多环境部署需求。


参考来源

相关推荐
非优秀程序员5 小时前
第07章 孙德良的阳谋|《互联网产品恩仇录》
javascript·后端
非优秀程序员5 小时前
第06章 浙江帮的内战|《互联网产品恩仇录》
后端
非优秀程序员5 小时前
第08章 马云的反击|《互联网产品恩仇录》
后端
非优秀程序员5 小时前
题记|《互联网产品恩仇录》
后端·程序员·创业
Gopher_HBo9 小时前
Go CPU 剖析的"地基":信号、CAS、写屏障、无锁环形缓冲
后端
panbook9 小时前
从0到1实现一个分布式时序数据库(二):写入成功之后,如何用 WAL 找回数据
后端
Swot9 小时前
上传一张 4MB 图片,我先后撞上了三层请求体限制
后端
IT_陈寒9 小时前
Vite的HMR把我整不会了:一个生产环境的热更新坑
前端·人工智能·后端
OLRainM9 小时前
实习复盘:大模型网关渠道质量评分实战(二)—— 报错了到底算谁的锅?流式归因与 Token 补账踩过的 8 个真坑
后端
梦想恒远10 小时前
Spring Boot + LangChain4j 统计 token 成本:ChatModelListener 实测与单价口径
spring boot·后端