zoukankan      html  css  js  c++  java
  • SpringBoot_配置文件

    Properties配置

    SpringBoot中采用了大量的自动化配置,但是对开发者而言,在实际项目中不可避免会有一些需要自己手动配置,承载这些自定义配置的文件就是resources 目录下的application .properties文件。

    Spring Boot 项目中的application.properties 配置文件一共可以出现在如下4 个位置:

    • 项目根目录下的config文件夫中

    • 项目根目录下

    • classpath下的config 文件夫中

    • classpath下

    如果这4个位置中都有application.properties文件,那么加载的优先级从1 到4 依次降低,SpringBoot将按照这个优先级查找配置信息,并加载到Spring Environment 中。

     

    如果开发者在开发中未使用application.properts,而是使用application.yml 作为配置文件,那么配置文件的优先级与application.properts的一致。如果不想使用application. properties 作为配置文件名,也可以自己定义。例如,在resources 目录下创建一个配置文件app.properties,然后将项目打成jar 包,打包成功后,使用如下命令运行:

      java -jar chapter02-2-0.0.1-SNAPSHOT.jar -- spring.config.name=app

    在运行时再指定配置文件的名字。使用spring.config.location可以指定配置文件所在目录(注意需要以/结束)

           java -jar chapter02-2-0.0.1-SNAPSHOT.jar -- spring.config.name=app -- pring.config.location=classpath:/

    YAML配置

    YAML 是JSON 的超集,简洁而强大,是一种专门用来书写配置文件的语言,可以替代application.properties。在创建一个SpringBoot项目时,引入的spring-boot-starter-web依赖间接地引入了snakeyaml依赖, snakeyaml会实现对YAML 配置的解析。YAML 的使用非常简单,利用缩进来表示层级关系,并且大小写敏感。在Spring Boot 项目中使用YAML 只需要在resources 目录下创建一个application .yml文件即可,然后向application.yml中添加如下配置:

           server :

        port: 80

        ervlet :

          context-path: /chapter02

        tomcat:

          uri - encoding: utf-8

    这一段配置等效于application.properties中的如下配置:

      server.port=80

      server.servlet.context-path=/chapter02

      server.tomcat.uri-encoding=utf-8

    YAML不仅可以配置常规属性,也可以配置复杂属性,例如下面一组配置

    my:

           name:小明

           address:桃花源

    像Properties 配置文件一样,这一段配置也可以注入一个Bean中

    @Component

    @ConfigurationProperties(prefix =”my”)

    public class User {

    private String name ;

    private String address ;

    }

    YAML还支持列表的配置

    my :

    name:小明

    address:桃花源

    favorites:

    -足球

    -徒步

                  -乒乓

    这一组配置可以注入如下Bean中

    @Component

    @ConfigurationProperties(prefix =”my”)

    public class User {

    private String name ;

    private String address ;

    private List<String> favorites;

    }

    YAML还支持更复杂的配置,即集合中也可以是一个对象

    在SpringBoot中使用YAML虽然方便,但是YAML也有一些缺陷,例如无法使用@Prop e rtySource注解加载YAML 文件,如果项目中有这种需求,还是需要使用Properties格式的配置文件。

    Profile

    开发者在项目发布之前,一般需要频繁地在开发环境、测试环境以及生产环境之间进行切换,这个时候大量的配置需要频繁更改,例如数据库配置、redis 配置、mongodb 配置、jms 配置等。频繁修改带来了巨大的工作量,Spring对此提供了解决方案(@Profile注解), SpringBoot则更进一步提供了更加简洁的解决方案, SpringBoot中约定的不同环境下配置文件名称规则为application- {profile} .properties,profile占位符表示当前环境的名称

    1.创建配置文件

    首先在resources目录下创建两个配置文件:application-dev.properties和application-prod.properties此时,分别表示开发环境中的配置和生产环境中的配置。

    application-dev.properties

           server.port=8080

    application-prod.properties

           server.port=80

    2.配置application.properties

    然后在application.properties 中进行配置

           spring.profiles.active=dev

    这个表示使用application-dev.properties配置文件启动项目,若将dev 改为prod,则表示使用application-prod.properties启动项目。项目启动成功后,就可以通过相应的端口进行访问了。

    3.在代码中配置

    对于第二步在application.properties中添加的配置,我们也可以在代码中添加配置来完成,在启动类的main方法上添加如下代码,可以替换第二步的配置:

    SpringApplicationBuilder builder = new

    SpringApplicationBuilder (Chapter013Application . class) ;

    Builder.application ().setAdditionalProfiles (”prod”);

    builder.run(args);

    4.项目启动时配置

      java - jar chapter01-3-0.0.1-SNAPSHOT.jar -- spring.profiles.active=prod

  • 相关阅读:
    如何设置Xcode模拟器地图的当前位置
    序列化框架MJExtension详解 + iOS ORM框架
    ios 容错处理JKDataHelper和AvoidCrash
    2017.5.3最新申请公司开发者账号整个流程(包括邓白氏申请详细流程带截图)
    详细分享UICollectionView的自定义布局(瀑布流, 线性, 圆形...)
    Mac系统安装和配置tomcat步骤详解
    Mac下intellij IDEA新建javaweb项目
    Apple Mach-O Linker Warning 警告解决办法
    项目适配iOS9遇到的一些问题及解决办法(更新两个小问题)
    iOS 中 延迟操作四种方式
  • 原文地址:https://www.cnblogs.com/zhiboluo/p/10671353.html
Copyright © 2011-2022 走看看