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 项目配置和运行示例,适用于实际开发中的多环境部署需求。


参考来源

相关推荐
geovindu1 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式
SearchMan1 小时前
还有人不知道&和&&的区别?
后端
想用offer打牌2 小时前
Personal Agent爆火 - 它到底是个什么
人工智能·后端·ai编程
IT_陈寒2 小时前
Vue的v-if和v-for混用居然是个天坑
前端·人工智能·后端
天衍四九-2 小时前
【无标题】
前端·spring boot·mysql·nginx·docker
今年下半年3 小时前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式
打工仔折腾 AI4 小时前
从Attention到BERT:双向预训练语言模型到底解决了什么问题
人工智能·后端·python·深度学习·语言模型·bert
lizhongxuan5 小时前
Agent Sandbox: Firecracker 任务生命周期
后端
YYYing.5 小时前
【设计模式系列 (七) 】桥接模式
c++·后端·设计模式·桥接模式