zoukankan      html  css  js  c++  java
  • Spring Boot系列(2)——配置相关

    〇、Spring Boot的全局配置文件

      通过上一篇我们可以知道,构建一个Spring Boot项目时,Spring Boot已经对项目进行了默认配置。但在实际应用中,每个项目有其特殊性,不可能仅使用默认的配置,还需自行添加或修改一些配置。

      Spring Boot有两种格式的配置文件:

        ->application.properties

        ->application.yml (或.yaml) 特点与语法

      全局配置文件的名称(application.xxx)是固定的,后缀可以二选一。两种格式配置效果一样,但语法略有差别。

    一、更改默认配置

      1.Spring Boot的全部默认配置项:https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#core-properties

      2.当我们想更改其中某个配置项时,只需要在我们项目的全局配置文件中直接写就可以覆盖掉默认配置;

        例如:修改服务器端口号(默认是8080,现在修改为8081)

        .yml文件写法(左)           .properties文件写法(右)

                             

        再启动程序时,可以看到端口号已经改变  

        

    二、获取自定义配置——使用.@ConfigurationProperties

      当我们新建了一个Java bean 并希望通过配置文件对其属性赋值:

      1.编写Java bean

      

      2.参数配置(注意名称对应,支持松散语法绑定):

      

       3.其中,需要在类前加上注解:

    1 /**
    2  * @ConfigurationProperties->将本来属性与配置文件中相关的参数绑定
    3  * prefix->表示前缀
    4  * @ConfigurationProperties只能对在Spring容器的类起作用
    5  * @Component->表示Spring容器组件
    6  */
    7 @Component
    8 @ConfigurationProperties(prefix = "people")

      4.@ConfigurationProperties需要导入配置文件解析器依赖

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-configuration-processor</artifactId>
         <optional>true</optional>
    </dependency>

      5.测试运行

      

      

    三、获取自定义配置——使用@Value

      1.使用@Value注解,其实就像Spring xml配置中的value=" "

    <bean id=”” class=””>
       <property name=”属性名” value=”值”></property>
    </bean>

      

      2.在Java bean属性前加上@Value("配置参数名")

      

      3.测试运行

       

      

      

      4.@ConfigurationProperties与@Value对比

       

    四、引入自定义配置文件

      @ConfigurationProperties与@Value注解的配置,都是默认从全局配置文件(application.properties/.yml)中获取值。当我们太多参数要配置,需要一个额外的配置文件来写参数时,可以用以下方法配置。

      1.使用@PropertySource注解引入指定配置文件

        (1)创建自定义的配置文件,内容格式如同上面所谈

        

         (2)在需要配置的类前加上注解

        注意:若全局配置文件中的参数与自定义配置文件中的参数相同,优先使用全局配置文件的参数

        

    五、为容器添加组件(bean)

      1.xml配置方式(早期spring风格)

        (1)用xml文件配置<bean>...</bean>    (2)在启动类上用@ImportResource注解引入该xml文件

      

      2.注解配置方式(配置类)

        (1)若在一个类前加上@Configuration注解,则表示这个类为配置类

        (2)在配置类的方法前加上@Bean注解,则表示该方法为一个 Java bean,并将该bean加入Spring容器中(bean名为方法名)

        

        (3)测试运行

        

     六、配置文件切换

      当我们开发阶段和生产阶段使用的配置参数不一样,又不想频繁将文件中的参数改来改去。我们可以同时创建多份同参数不同值的自定义配置文件,并在全局配置文件中指定使用哪一份。

      1.profile切换(.properties文件)

        方法:可以新建多个application-{profile标识}.properties/.yml,在全局配置文件中用'spring.profiles.active=profile标识' 指定当前所用配置文件。

        (1)分别新建profile文件并添加配置:

        application-development.properties——>配置端口号为8082,

        application-produce.properties——>配置端口号为8083

        在全局配置文件application.properties中填写spring.profiles.active=development

        

        (2)启动程序

        

      2.profile切换(yaml多文档块)

        方法:在全局配置文件application.yml中,用‘---’(三个小横杠)切分文档

        注意:当.yml配置文件和.properties文件并存时,优先.properties文件生效

        

      3.配置文件切换(命令行参数)

        java -jar jar包路径 --spring.config.location=配置文件路径

       

    七、配置文件优先级顺序

      官网文档:https://docs.spring.io/spring-boot/docs/2.0.0.RC1/reference/htmlsingle/#boot-features-external-config

      注意:各文件不是独立生效,而是若参数相同,则按优先级;若参数不同,则各文件互补。

      

  • 相关阅读:
    使用curses管理基于文本的屏幕--(四)
    让Debian服务器支持jsp程序
    使用curses管理基于文本的屏幕--(五)
    SQL Server DT问与答
    ExtJS4.x treegrid 控件复选框的研究
    动态查找表之二叉排序树
    应届毕业生求职,注意事项
    windows编码约定
    JavaJDBC数据库开发
    Windows桌面应用开发字符串的使用
  • 原文地址:https://www.cnblogs.com/Drajun/p/12142742.html
Copyright © 2011-2022 走看看