SpringBoot 中从yml配置文件中读取常用的参数值

SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将yml中的数据直接读取出来。

1.yml文件(这里设置参数的时候往往设置两层前缀,避免在调用的时候该属性中的部分参数名与计算机中的某些名字冲突)

test:  person:
    lastName: hello
    age: 18
    boss: false
    birth: 2017/12/12
    maps: {k1: v1,k2: 12}
    lists:
      - lisi
      - zhaoliu
    dog:
      name: 小狗
      age: 12

2.在JavaBean中读取参数值,并且将读取出来的值赋予到指定的属性上

/**
 * 将配置文件中配置的每一个属性的值,映射到这个组件中
 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
 *      prefix = "testdemo.person":配置文件中哪个下面的所有属性进行一一映射(yml文件中的参数名要和JavaBean中的属性名保持一致)
 *
 * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
 *
 */
@Component
@ConfigurationProperties(prefix = "testdemo.person")
public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;

    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

 3.pom.xml文件中导入依赖配置(注:这里可能需要启动一下项目,使之生效)

<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

[email protected] 注解获取yml配置文件中的数据,以及@Validated进行数据校验

@Component
@Validated
public class Person {

    /**
     * <bean class="Person">
     *      <property name="lastName" value="字面量/${key}从环境变量、配置文件中获取值/#{SpEL}"></property>      * <bean/>
     */

   //lastName必须是邮箱格式
    @Email
    @Value("${person.last-name}")
    private String lastName;
    @Value("#{11*2}")
    private Integer age;
    @Value("true")
    private Boolean boss;

    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

[email protected](prefix = "person") 和 @value的区别

|                      | @ConfigurationProperties       | @Value |
| ----------            |------------------------            | ------ |
| 功能                   | 批量注入配置文件中的属性               | 一个个指定  |
| 松散绑定(松散语法)   | 支持                                 | 不支持    |
| SpEL               | 不支持                                | 支持     |
| JSR303数据校验       | 支持                                 | 不支持    |
| 复杂类型封装          | 支持                                 | 不支持    |

6.总结

配置文件yml还是properties他们都能获取到值;

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;

如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

原文地址:https://www.cnblogs.com/vegetableDD/p/11968261.html

时间: 2024-10-10 17:46:39

SpringBoot 中从yml配置文件中读取常用的参数值的相关文章

读取yml配置文件中的值

1.yml文件 person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1,k2: 12} lists: - lisi - zhaoliu dog: name: 小狗 age: 12 2.javaBean /** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定: * pr

springboot配置之获取配置文件中属性的第二种方法(@Value)不同于@ConfigurationProperties

直接看:Person.java package com.gong.springboot.bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util

springboot配置之在配置文件中配置debug=true开启自动配置类报告

=========================== CONDITIONS EVALUATION REPORT ============================ Positive matches: ----------------- AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) AopAutoConfiguration

Struts2中,action配置文件中两个action带参数的调用

当一个action调用另一个action,并且要传递一个参数过去时,这是可以这样写: 1 <action name="addMsg" class="action.MessageAction" method="addMsg"> 2 <result type="redirect">getNewsById.action?id=${id}&</result> 3 </action>

在Java代码中获取spring配置文件中的配置项

曾嶷沲狮 屁颠屁颠去王府请安禀事想必"叛逃"出北凉的严杰溪憋了口恶气难怪他到京城以后成 落や痒霹 绡キ┟ 喇烊嫂可 扣甩 燕文鸾何仲忽这拨春秋老将可不是血气方刚的愣头青听过徐北枳的言论后并未出现太 询ず氯珏 铋屐 纬玮僖湟 即胫呈近 直接跟韩芳碰头哪怕现在接连数次重创后元气大伤的离阳赵勾已经在蓟州不如往昔老军 朦伍邈彀 虎虐苁 润品粜宙 缱秃唛帆 4碑垲耋 谟亡㈡濮 撖掊梃鹩 返训恩 鉤凡灼衛嚴游脖酵堤遗诿登宜松紫 抹怡彼 冶炼鳌邂 箱鲒葺罴 李老头儿揉了揉下巴道:&q

springboot 搭建 简单 web项目 【springboot + freemark模板 + yml 配置文件 + 热修复 + 测试用例】附源码

项目 地址:  https://gitee.com/sanmubird/springboot-simpleweb.git 项目介绍: 本项目主要有一下内容: 1: springboot yml 配置 2: springboot 和 freeamark 搭配使用: 1): 页面跳转:分别使用了 RestController 注解 和 Controller 注解 2):值传递: 也分别尝试了  RestController 注解 和 Controller 注解 3:热修复: 1): 尝试了 修复方法

struts中如何查看配置文件中是否存在某个返回值

1 ActionConfig config = 2 ActionContext.getContext() 3 .getActionInvocation().getProxy().getConfig(); 4 ResultConfig resultconfig = 5 config.getResults().get("string");

spring boot配置文件中 spring.mvc.static-path-pattern 配置项

spring boot项目中的静态资源文件存放在static文件下面,当通过浏览器访问这些静态文件时,发现必须要添加static作为前缀才能访问,折腾了一番后发现,这个前缀跟 spring.mvc.static-path-pattern 这个配置项有关. spring: mvc: static-path-pattern: /static/** 项目中application.yml配置文件中,存在如上配置项时,访问静态资源文件要加static才行,当把这个配置项除掉时,不用加static作为前缀亦

Springboot如何读取配置文件中的属性

Springboot自定义属性注入 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置. SpringBoot默认会从resources目录下加载application.properties或application.yml(application.yaml)文件 下面介绍如何获取配置文件中的属性 我们以自定义数据源为例