springboot ,idea对application-{profile}.properties 来管理不同环境的开发、打包和运行-打包所有配置文件,运行指定配置文件

在Spring Boot项目中,你可以通过配置不同的application-{profile}.properties文件来管理不同环境下的配置。具体来说,你可以使用application-dev.properties、application-test.properties和application-pro.properties分别用于开发、测试和生产环境。

当前采用的方案是,每个环境的配置文件都做打包,在运行时指定配置文件

以下是详细的步骤来实现这一点:

1. 创建配置文件
在你的src/main/resources目录下创建以下配置文件:

application-dev.properties:开发环境配置
application-test.properties:测试环境配置
application-pro.properties:生产环境配置
例如:

application-dev.properties
Properties

spring.datasource.url=jdbc:mysql://localhost:3306/dev_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update


application-test.properties
Properties

spring.datasource.url=jdbc:mysql://localhost:3306/test_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=testuser
spring.datasource.password=testpass
spring.jpa.hibernate.ddl-auto=validate


application-pro.properties
Properties

spring.datasource.url=jdbc:mysql://prod-db-server:3306/prod_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=produser
spring.datasource.password=prodpass
spring.jpa.hibernate.ddl-auto=none


2. 设置默认配置文件
你可以在application.properties或application.yml中设置默认的配置文件,以便在没有指定活动配置文件时使用默认配置。通常情况下,你会将其设置为开发环境的配置文件。

application.properties
Properties

spring.profiles.active=dev


或者使用YAML格式:

application.yml
Yaml

spring:
  profiles:
    active: dev


3. 启动应用程序时指定配置文件
在启动Spring Boot应用程序时,可以通过命令行参数或IDE的运行配置来指定要使用的配置文件。

使用命令行参数
开发环境
Sh

mvn spring-boot:run -Dspring-boot.run.profiles=dev


测试环境
Sh

mvn spring-boot:run -Dspring-boot.run.profiles=test


生产环境
Sh

mvn spring-boot:run -Dspring-boot.run.profiles=pro


在IDEA中配置运行配置
打开IntelliJ IDEA。
进入 Run -> Edit Configurations。
选择你的Spring Boot应用程序配置。
在 VM options 或 Environment variables 中添加以下内容:

VM options: -Dspring.profiles.active=dev
Environment variables: SPRING_PROFILES_ACTIVE=dev


4. 打包成JAR文件并指定配置文件
当你将应用程序打包成JAR文件时,也可以通过命令行参数来指定配置文件。

打包成JAR文件
Sh

mvn clean package


运行JAR文件并指定配置文件
开发环境
Sh

java -jar your-application.jar --spring.profiles.active=dev


测试环境
Sh

java -jar your-application.jar --spring.profiles.active=test


生产环境
Sh

java -jar your-application.jar --spring.profiles.active=pro


完整示例
假设你的项目结构如下:

深色版本
your-springboot-project/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/example/demo/
│       │       └── DemoApplication.java
│       └── resources/
│           ├── application.properties
│           ├── application-dev.properties
│           ├── application-test.properties
│           └── application-pro.properties
└── pom.xml
pom.xml(为避免错误,可以在打包完成后删除不是该环境需要的配置,以免错误
确保你的pom.xml文件中包含必要的依赖项:Xml

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis Plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3</version>
    </dependency>

    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>


DemoApplication.java
这是你的主应用程序类:Java

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}


总结
通过上述步骤,你可以在Spring Boot项目中灵活地管理和切换不同环境的配置文件。确保每个环境的配置文件正确无误,并且在启动应用程序时正确指定所需的配置文件。这样可以方便地进行开发、测试和部署。如果有任何问题或需要进一步的帮助,请随时告诉我!

在IntelliJ IDEA中配置Spring Boot应用程序启动打包时加载不同`.properties`文件,可采用以下方法: ### 多配置文件结合Maven动态切换 在`pom.xml`文件里运用Maven的`<profiles>`标签定义不同环境,像开发环境(dev)生产环境(prod)。示例如下: ```xml <profiles> <profile> <id>dev</id> <properties> <!-- 环境标识,需要与配置文件的名称相对应 --> <profiles.active>dev</profiles.active> </properties> <activation> <!-- 默认环境 --> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <properties> <profiles.active>prod</profiles.active> </properties> </profile> </profiles> ``` 在`resources`目录下创建不同环境配置文件,例如`application-dev.properties``application-prod.properties`。启动应用程序时,借助Maven的`-P`参数指定使用的环境,如`mvn spring-boot:run -Pprod`就会加载`application-prod.properties`文件 [^3]。 ### 启动参数指定配置文件 启动Spring Boot应用程序时,可通过命令行参数或者在IntelliJ IDEA里修改`VM options`来指定要加载的配置文件- **命令行方式**:使用`java -jar`命令启动时,可通过`--spring.config.name``--spring.config.location`参数指定配置文件的名称位置。示例如下: ```bash java -jar demo.jar --spring.config.name=application-prod --spring.config.location=classpath:/,file:/path/to/external/config/ ``` - **IntelliJ IDEA方式**:在IntelliJ IDEA中启动Spring Boot项目时,修改`VM options`,添加类似如下内容: ```plaintext -Dspring.config.name=application-prod -Dspring.config.location=classpath:/,file:/path/to/external/config/ ``` 如此,应用程序启动时就会加载指定配置文件 [^1]。 ### 利用Spring的属性配置加载顺序 Spring Boot项目属性配置存在特定的加载顺序,可利用这一特性加载不同配置文件。加载顺序如下: 1. 使用命令行方式启动时,在命令行中传入的参数。 2. `SPRING_APPLICATION_JSON`中的属性,这是以JSON格式配置在系统环境变量中的内容。 3. `java:comp/env`中的JNDI属性。 4. Java的系统属性,可通过`System.getProperties()`获取。 5. 操作系统的环境变量,如`Path`等。 6. 通过`random.*`配置的随机属性。 7. 位于当前应用jar包之外,针对不同`{profile}`环境配置文件内容,例如`application-{profile}.properties`或YAML格式定义的配置文件,如`application-dev.properties`。 8. 位于当前应用jar包之内,针对不同`{profile}`环境配置文件内容,例如`application-{profile}.properties`或是YAML定义的配置文件。 9. 位于当前应用jar包之外的`application.properties`YAML配置内容。 10. 位于当前应用jar包之内的`application.properties`YAML配置内容。 11. 在`@Configuration`注解修改的类中,通过`@PropertySource`注解定义的属性。 12. 应用默认属性,使用`SpringApplication.setDefaultProperties`定义的内容。 可依据需求,在不同位置放置配置文件,让Spring Boot按照顺序加载 [^1]。 ### 确保配置文件被扫描 若IntelliJ IDEA运行时扫描不到配置文件,可在`pom.xml`文件中添加相应配置,确保文件能正常被扫描到并加载成功。示例如下: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> <include>**/*.yml</include> </includes> </resource> </resources> </build> ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慧香一格

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

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

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

打赏作者

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

抵扣说明:

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

余额充值