zoukankan      html  css  js  c++  java
  • springboot笔记(4) 多环境配置和引用配置文件中的内容

    一. 配置文件格式有yml和properties.

        1. yml格式因为会自动的将同一对象下的属性聚集在一块, 并且文件相对较小, 所以是首选;

         2.多环境配置: 开发环境和生成环境都配置在同一yml文件中

    如下图是我项目的三个配置文件,其中,application.yml是启动服务时,服务器会自动加载的配置文件,而application-dev.yml代表的是开发环境的配置文件,application-prod.yml代表的是生产环境的配置文件,后两个文件在启动服务时,服务器不会自动加载,那么在不同的环境中时怎么调用不同的文件的呢?

      

    方式一、修改配置文件方式

        修改application.yml配置文件,具体内容如下图:

    这样,在启动服务时,服务器就会通过application.yml文件去调用application-dev.yml文件。同理,若active: prod,那么服务在启动时,服务器就会调用application-prod.yml文件。也就是说,在开发环境时,只需将application.yml配置文件配置为"dev",而生产环境时,只需将“dev”改为“prod”就可以了。

    方式二、命令启动服务,命令中带参数方式(此方式可以没有application.yml文件)

    第一步:进入到项目目录下,先用maven对项目进行打包,会在target目录下生成项目的jar包

        打包可以用右侧的moven窗口

           第二步:进入target目录,执行命令:java -jar 生成的jar包 --spring.profiles.active=dev

                  (其中的--代表条件)

     项目就会调用application-dev.yml配置文件,而不是application.yml, 的配置要求启动服务。同理,若是开发环境,只需将prod改为dev即可。

    二.  引入配置文件信息

          1.@Value("${配置属性}")会自动获取配置文件的属性并赋值给变量,

              例子: 在配置文件中有属性picpath, 想在java代码中用这个属性;

            

     

     2 @ConfigurationProperties注解获取大量的注解

    在java代码中获取application-pro.yml配置文件中的aliyun属性下所有的属性值(111,222,333)

    (1)新建包properties, 类AliyunProperty;(这里用了一个类单独获取aliyun配置)

    (2) 添加类注解@ConfigurationProperties(profiex = "aliyun")

    (3)@Component添加类到ioc容器中

    (4)设置类的属性名与aliyun的属性名一直, 

    然后就可以在java代码中用了;

     

     

  • 相关阅读:
    Eclipse创建Python工程
    MySQL python安装
    pip安装-python2.7.15
    接口测试-HTTP重点知识及 测试工具
    接口测试-基础
    关闭win10的自动更新功能
    高版本MySQL(5.7,5.8)的JDBC连接新问题
    错误:java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
    Idea SpringBoot工程提示 "Error running 'xxxx'": Command line is too long... 问题解决
    错误:23:36:21.161 [main] ERROR org.springframework.boot.SpringApplication
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/14397454.html
Copyright © 2011-2022 走看看