zoukankan      html  css  js  c++  java
  • 学会springboot多环境配置方案不用5分钟

    一 前言

    本篇文章的主题是在springboot中写多个配置文件,指定让个配置文件生效,以便于达到在开发环境,测试环境,线上环境根据不同的配置灵活应用;读完本篇你将获得,学会springboot的多环境配置;学会使用idea配置虚拟机参数启动不同的配置文件;学会使用jar包运行并且指定不同的配置文件等;

    二 激活方式一

    spring框架内部提供了2中方式用于加载YAML文档,以供启动时读取配置文件;YamlPropertiesFactoryBean 会 加载 YAML 变为 Properties;YamlMapFactoryBean 会 转换 YAML 为map;使用YAML更加简便不用担心内部具体如何转换;

    2.1pom.xml

    引入依赖boor-start依赖和打包插件;jdk1.8版本,boot2.1.1;

       <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.1.RELEASE</version>
            <relativePath/>
        </parent>
        
    	<dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    2.2 application.yml

    一切从简,知识追寻者不会在配置文件中写其他内容,就指定端口即可,用于区别不同的环境;其中配置开发环境为dev,生产环境为pro;默认激活dev 环境;

    # 激活配置
    spring:
      profiles:
        active: dev
    
    ---
    # 配置一 开发环境
    spring:
      profiles: dev
    server:
      port: 8060
    
    ---
    # 配置二 生产环境
    spring:
      profiles: pro
    
    server:
      port: 8061
    

    2.3 controller

    controller一个hell方法,用于浏览器测试;

    @RestController
    public class ZSZXZ {
    
        @GetMapping("zszxz")
        public String hello(){
            return "hello 知识追寻者";
        }
    }
    

    2.4 启动类

    启动类添加@SpringBootApplication注解,表名是个springboot应用,会进行自动配置;

    /**
     * @Author lsc
     * <p> 多环境配置 </p>
     */
    @SpringBootApplication
    public class ProfileApp {
    
        public static void main(String[] args) {
            SpringApplication.run(ProfileApp.class,args);
        }
    }
    

    2.5 dev执行结果

    启动工程,打开浏览器路径如下,端口是8086,说明默认激活dev环境已经成功

    http://localhost:8060/zszxz

    2.6 pro执行结果

    application.yml中修改激活环境为pro后重启工程,修改浏览器端口,执行结果如下说明配置成功;

    # 激活配置
    spring:
      profiles:
        active: pro
    

    http://localhost:8061/zszxz

    执行结果

    三 激活方式二

    3.1 application.yml

    去除application.yml中激活方式,知识追寻者改用idea配置VM参数选项方式进行激活;

    ---
    # 配置一 开发环境
    spring:
      profiles: dev
    server:
      port: 8060
    
    ---
    # 配置二 生产环境
    spring:
      profiles: pro
    
    server:
      port: 8061
    

    3.2 idea配置VM参数

    在VM选项中输入-Dspring.profiles.active=dev,表示激活dev环境;然后重启工程访问即可

    四 项目部署方式

    将工程打包成jar包,在cmd中如下命令执行,如果包名不同请替换,然后浏览器访问即可;

    java -jar springboot-profile-1.0-SNAPSHOT.jar --Dspring.profiles.active=dev
    

    五 多配置文件方式

    上面的配置文件都写在一个application.yml中,过于累赘,为了方便查阅和解耦合,推荐多个配置文件方式,然后在主配置文件中激活,具体的步骤如下;

    5.1 application-zszxz.yml

    新建yml文件名为application-zszxz.yml;内容如下

    server:
      port: 8061
    

    5.2 application-test.yml

    新建yml文件名为application-test.yml;内容如下

    server:
      port: 8060
    

    5.3 application.yml

    修改application.yml内容如下

    spring:
      profiles:
        active: zszxz
    

    5.4 启动后结果

    http://localhost:8061/zszxz 启动后结果 与之前一致,不再贴图浪费资源;

  • 相关阅读:
    学习Bitmap,处理“海量”数据
    学习Trie树,处理“海量”数据
    学习KMP算法
    学习堆与栈内存分配方式
    学习继承和虚析构函数
    学习处理数组子集和的算法
    学习类中的const和static类型
    学习利用动态规划解决若干问题
    【MySQL】MySQL忘记root密码解决方案
    【API】短信通106端口验证短信的实现
  • 原文地址:https://www.cnblogs.com/zszxz/p/12198546.html
Copyright © 2011-2022 走看看