当前位置: 首页 > news >正文

Springboot 指定获取出 yml文件里面的配置值

之前写过一篇获取properties文件里面的值:


Springboot 指定获取自己写的配置properties文件的值

https://blog.csdn.net/qq_35387940/article/details/90714123

 

现在补充多一篇,指定获取yml里面的配置值 。

 

内容:

这里分别介绍两种方式,都是基于注解实现,分别是:

@Value("${xxxxx.xx}")

@ConfigurationProperties(prefix = "xxxxx")

 

进入主题:

 

@Value("${xxxxx.xx}")

使用这种方式非常简单(每一个注解获取一个对应的配置值),

在yml里面加入我们的自定义配置项,如(大小写随意,调用时对应好就行):

 指定获取这些值去使用,如:

    @Value("${myKey.tua}")
    private  String tuaKey;
    @Value("${myKey.aco}")
    private  String acoKey;
    @Value("${mynum.new}")
    private  String myNum;

    @GetMapping("/getMyTest")
    public void getMyTest(){

        System.out.println("tuaKey:"+tuaKey);
        System.out.println("acoKey:"+acoKey);
        System.out.println("myNum:"+myNum);
    }

可以看到结果,获取正常:

 

 

@ConfigurationProperties(prefix = "xxxxx")

使用这种方式也非常简单(一次性将多个配置值获取并示例化成bean放入到spring容器里面),

 

在yml里面加入我们的自定义配置项,如(注意,使用一开始的key参数使用小写,使用大写会出错,因为prefix不支持驼峰命名和下划线形式):

然后我们建一个对于这些配置项的实体类,并使用上注解 @ConfigurationProperties ,如:

prefix指前缀,一般也就是第一个,我们这个例子的第一个是myinfo 

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @Author : JCccc
 * @CreateTime : 2020/5/19
 * @Description :
 **/


@Component
@ConfigurationProperties(prefix = "myinfo")
public class MyInfo {

    private String name;
    private Integer age;
    private String description;

    @Override
    public String toString() {
        return "MyTest{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", description='" + description + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

 指定获取这些值去使用,也就是相当于使用这个类,直接配合@Autowired 使用即可:

    @Autowired
    MyInfo myInfo;

    @GetMapping("/getMyTest")
    public void getMyTest(){

        System.out.println("myInfo:"+myInfo.toString());
        System.out.println("myInfo name:"+myInfo.getName());
    }

可以看到结果,获取正常:

 

 

ok,该篇就到此。 

相关文章:

  • tomcat Note: further occurrences of HTTP header parsing errors will be logged at DEBUG
  • Springboot 使用自定义注解结合AOP方式校验接口参数
  • Java 看一眼equals吧,都用这么久了
  • MySql 报错 表被锁 处理
  • Springboot Filter 多过滤器的使用
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • JAVA jdk1.8 HashMap 存值流程图解
  • Java String 为什么不可变? 真的吗?
  • JAVA 将日期字符串 月份不足10月进行补0操作
  • Springboot Quartz定时任务的动态调度使用,实战详解
  • Springboot 跟着我了解下 事务 @Transactional 默认方式 Propagation.REQUIRED
  • Springboot 全局日期格式化,只需要几行小代码
  • springboot 上传文件设置文件大小限制
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • Springboot 自定义注解+AOP简单实例介绍
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • .pyc 想到的一些问题
  • avalon2.2的VM生成过程
  • css系列之关于字体的事
  • CSS相对定位
  • E-HPC支持多队列管理和自动伸缩
  • ES6简单总结(搭配简单的讲解和小案例)
  • js ES6 求数组的交集,并集,还有差集
  • js操作时间(持续更新)
  • k8s如何管理Pod
  • laravel with 查询列表限制条数
  • miaov-React 最佳入门
  • Mybatis初体验
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • socket.io+express实现聊天室的思考(三)
  • sublime配置文件
  • 简单实现一个textarea自适应高度
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 深入浅出webpack学习(1)--核心概念
  • nb
  • 第二十章:异步和文件I/O.(二十三)
  • 数据可视化之下发图实践
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (十八)SpringBoot之发送QQ邮件
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)jdk与jre的区别
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • 、写入Shellcode到注册表上线
  • .Net MVC + EF搭建学生管理系统
  • .NET成年了,然后呢?
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用