Java开发网站(后端篇)——SpringBoot通过Maven设置多环境配置文件

多环境配置文件

一般项目会分为很多个环境,开发(本地)环境、测试环境、生产环境.
对应不同环境也会有不同的配置,最直白的就是数据库,不可能测试环境和生产环境用同一个数据库吧。当你只有一个yml配置文件的时候。项目每次部署的时候总不能每次都手动修改配置,所以可以配置多个环境的配置文件,需要哪个的时候勾选就好了。

pom文件配置

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
    
<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>

<build>
    <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.1.4.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <finalName>${project.artifactId}</finalName>
    </build>

我指定义了dev开发环境和prod生产环境,并且默认选择dev环境。顺便build中的配置也统一下一。

创建yml文件

分别创建application-dev.yml 和 application-prod.yml文件
在这里插入图片描述
dev和prod后缀就是你pom文件中定义的,你也可以定义一个stg,创建application-stg.yml。

application.yml添加配置

application.yml作为一个总的配置文件,不同环境的通用配置可以放到其中。

spring:
  profiles:
    active: "@profiles.active@"

找到idea右侧Maven选项,刷新一下,就可以看到配置好的选项。
在这里插入图片描述
默认选择dev环境的配置文件,可以手动选择任意环境。
我们分别在两个环境下的配置文件写一个配置,启动项目测试一下。
dev:

ceshi: dev

prod:

ceshi: prod

在controller中调用一下

    @Value("${ceshi}")
    private String ceshi;

	@GetMapping(value = "/test")
    @ApiOperation(value = "测试环境配置文件接口")
    public String test(){
        return ceshi;
    }

启动项目,也可以在日志中看到,选择了dev环境配置
在这里插入图片描述
请求接口
在这里插入图片描述
切换到prod,再启动项目请求接口。
在这里插入图片描述
就此多环境配置就好了,如果遇到不生效的情况,请仔细检查pom文件是否配置正确,或者Reload maven一下。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值