SpringBoot多环境部署

        在项目运行中,包括多种环境,例如线上环境prod(product)、开发环dev(development)、测试 环境test、提测环境qa、单元测试unitest等等。不同的环境需要进行不同的配置,从而在不同的 场景中跑我们的程序。例如prod环境和dev环境通常需要连接不同的数据库、需要配置不同的日志 输出配置。还有一些类和方法,在不同的环境下有不同的实现方式。

Spring Boot 对此提供了支持,一方面是注解@Profile,另一方面还有多资源配置文件。

一. @Profile

@profile 注解的作用是指定类或方法在特定的 Profile 环境生效,任何 @Component 或@Configuration 注解的类都可以使用 @Profile 注解。在使用DI来依赖注入的时候,能够根据 @profile 标明的环境,将注入符合当前运行环境的相应的bean。

使用要求:

@Component 或 @Configuration 注解的类可以使用 @profile

@Profile 中需要指定一个字符串,约定生效的环境

@Configuration
public class DemoConfigurtion {

    @Bean
    @Profile("prod")
    public String prod(){
        System.out.println("prod");
        return "prod";
    }

    @Bean
    @Profile("dev")
    public String dev(){
        System.out.println("dev");
        return "dev";
    }
}

@Profile可以作用到类上也可以用到方法上也可以用到注解上,用到注解上,使用此注解就不用使用@Profile这个注解了

在配置文件中激活@Profile注解

spring:
  profiles:
    active: prod

也可以使用命令行激活profile

在打包后运行的时候,添加参数:

java -jar demo-SNAPSHOT.jar --spring.profiles.active=dev;

二.资源配置文件

1.首先添加两个配置文件

 2.在application-dev.yml中设置端口为8888

server:
  port: 8888

3.在application-prod.yml中设置端口为9999

server:
  port: 9999

4.在application.yml中设置使用那个配置文件

spring:
  profiles:
    active: prod

5.启动项目测试走的是那个配置文件

 可以看出走的是prod的配置文件

修改application.yml 中

spring:
  profiles:
    active: dev

查看效果,可以看出是dev环境的,这样就可以实现在不同的环境中使用不同的配置进行部署了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值