SpringBoot2.x学习(二):为属性注入配置文件中的值:@ConfigurationProperties注解的使用

2023-05-16

文章目录

  • 一、@ConfigurationProperties 简单介绍
  • 二、@ConfigurationProperties 使用示范
    • 1、创建两个 javaBean
    • 2、在 SpringBoot 全局配置文件写入需要注入的值
      • 2.1 application.yml 写法
      • 2.2 application.properties 写法
    • 3、在类上加上 @ConfigurationProperties 注解
    • 4、测试

一、@ConfigurationProperties 简单介绍

通过使用 @ConfigurationProperties 注解在类上,在SpringBoot 全局配置文件就可以为类的对象的属性注入对应的值。

二、@ConfigurationProperties 使用示范

1、创建两个 javaBean

Demo.java

package com.example.springbootboot02config.bean;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author liyanan
 * @date 2019/12/16 13:43
 */
public class Demo {
       private String lastName;

    private Integer age;

    private Double salary;

    private Boolean boss;

    private Date birthday;

    private Map<String, Object> map;

    private List<String> list;

    private DataDemo dataDemo;

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

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

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    public Boolean getBoss() {
        return boss;
    }

    public void setBoss(Boolean boss) {
        this.boss = boss;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    public List<String> getList() {
        return list;
    }

    public void setList(List<String> list) {
        this.list = list;
    }
    
    public DataDemo getDataDemo() {
        return dataDemo;
    }

    public void setDataDemo(DataDemo dataDemo) {
        this.dataDemo = dataDemo;
    }

    @Override
    public String toString() {
        return "Demo{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", salary=" + salary +
                ", boss=" + boss +
                ", birthday=" + birthday +
                ", map=" + map +
                ", list=" + list +
                ", dataDemo=" + dataDemo +
                '}';
    }
}

DataDemo.java

package com.example.springbootboot02config.bean;

/**
 * @author liyanan
 * @date 2019/12/16 13:43
 */
public class DataDemo {
    private String name;

    private Integer age;

    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;
    }

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

2、在 SpringBoot 全局配置文件写入需要注入的值

2.1 application.yml 写法

demo:
  lastName: zhangsan
  age: 20
  salary: 10000
  boss: true
  birthday: 1888/08/08
  map:
    key1: value1
    key2: value2
  list:
    - one
    - two
    - three
  dataDemo:
    name: java
    age: 8

2.2 application.properties 写法

# 配置 demo 的值
demo.last-name=lisi
demo.age=30
demo.birthday=1989/9/12
demo.boss=false
demo.salary=23000
demo.map.key1=value1
demo.map.key2=value2
demo.list=one, two, three
demo.data-demo.name=zhangsan
demo.data-demo.age=8

此时,在全局配置文件写的值还没有被注入到对应的对象中,需要在类上加入对应的注解。

3、在类上加上 @ConfigurationProperties 注解

@ConfigurationProperties(prefix = "demo")
@Component
public class Demo {
	// ... 内容已省略
}

@ConfigurationProperties(prefix = “demo”):匹配配置文件里前缀为 demo 的配置

@Component:加上该注解,Spring 容器中才可以找到该类

4、测试

@SpringBootTest
class SpringbootBoot02ConfigApplicationTests {

    @Autowired
    Demo demo;

    @Test
    void contextLoads() {
        System.out.println(demo);
    }
}

输出结果为:

Demo{lastName='zhangsan', age=20, salary=10000.0, boss=true, birthday=Wed Aug 08 00:00:00 CST 1888, map={key1=value1, key2=value2}, list=[one, two, three], dataDemo=DataDemo{name='java', age=8}}

如果发现其中哪个值你配置了,但是却没有成功注入,检查 JavaBean 是否属性对应的 set 方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot2.x学习(二):为属性注入配置文件中的值:@ConfigurationProperties注解的使用 的相关文章

  • linux设备端breakpad程序崩溃日志的捕获与分析

    linux设备端breakpad程序崩溃日志的捕获与分析 目录 linux设备端breakpad程序崩溃日志的捕获与分析说明平台介绍breakpad 的编译PC端的编译与安装交叉编译 breakpad 的使用代码的使用需要使用的文件程序崩溃
  • [转载]槽函数教程

    一 概述 二 信号 三 槽 四 信号和槽的关联 五 元对象工具 六 程式样例 七 应注意的问题 相关资源 作者简介 作者 唐新华 xhsmart 64 263 net 软件工程师 信号和槽作为QT 的核心机制在QT 编程中有着广泛的应用 x
  • 如何在Centos服务器上搭建起Oracle10、VNC、以及FTP

    一 重装和分区 1 配置所需磁盘阵列 xff08 Raid xff09 xff1b 2 正确分区 xff1b 3 Centos安装 xff1a 过于简单 xff0c 请自行bd 二 连网 系统安装完成之后 xff0c 我们需为其分配IP和D
  • cas服务器连接数据库

    进行数据库的连接 xff0c 必须要导入一些必要的包 xff0c 比如数据库驱动 xff0c mysql连接等包 xff0c 这些maven依赖都能在网上找到 1 找到cas overlay template 5 3文件夹下的pom文件 x
  • VirtualBox 桥接模式,虚拟机ping不通宿主机

    按照网上教程设置好虚拟机网络之后 xff0c 怎么都ping不通宿主机 方案一 xff1a 修改防火墙入站规则 打开控制面板 xff0c 找到Windows Defender 防火墙 xff0c 点击高级设置 xff0c 在入站规则里找到核
  • Kuhn-Munkres 算法详细解析

    直接进入正题 xff0c Kuhn Munkres 算法 xff08 下文简称 KM 算法 xff09 是为了高效求解二分图最佳完美匹配问题而生的 xff0c 我们先温习一下几个概念 xff0c 如果你对这几个概念不是很熟悉的话 xff0c
  • maven web项目执行install异常:org.apache.maven.plugin.war.util.WebappStructure

    INFO Packaging webapp INFO ERROR FATAL ERROR INFO INFO Cannot construct org apache maven plugin war util WebappStructure

随机推荐

  • 配置linux主机静态ip和网关

    网上还是百度了比较多 xff0c 具体参考已经记不清楚了 xff0c 也就不写了 不过还是要感谢各位大佬之前的分享 xff0c 还有一些分享了网络知识的 xff0c 有兴趣可以自己百度去看了 这篇只大概记录需要配置哪些东西 xff0c 大概
  • adb命令 提取已安装的apk

    获取包名 通过 adb shell pm 命令 xff0c 可以打印当前手机安装的所有 apk 的包名 adb shell pm list packages 根据包名查找 APK 对应的路径 所有安装完后的apk xff0c 其实都存在手机
  • python 语言基础 - 你不得不知道的字符串常用函数之isalpha

    前言 小伙伴们大家好 xff0c 每天一个小知识 xff0c 一起学python每天进步一点点 不知道小伙伴们在开发的时候有没有遇到这样一种场景 xff0c 有时候一些业务需要 xff0c 想要判断一个字符串是不是由纯字符组成 xff0c
  • python 语言基础 - 你不得不知道的字符串常用函数之isdigit

    前言 小伙伴们大家好 xff0c 每天一个小知识 xff0c 一起学python每天进步一点点 上一篇文章中为大家分享了关于判断字符串是否全都是由字符组成的函数isalpha xff0c 今天要给大家分享的依然是判断字符串组成的函数isdi
  • uni-app,选择器使用

    1 uni app 选择器使用示例 xff1a let view 61 uni createSelectorQuery in this select 34 grade btn 34 view fields size true scrollO
  • CSRF漏洞修复建议

    1 关于CSRF 跨站请求伪造 xff0c xff08 Cross site request forgery xff09 是一种对网站的恶意利用 CSRF作为一种跨网站的攻击方式 xff0c 不同于XSS站内攻击 CSRF是通过伪装成受信任
  • centos6和centos7的防火墙基本命令

    一 centos6 xff1a 1 firewall的基本启动 停止 重启命令 查看防火墙状态 xff1a service iptables status etc init d iptables status centos6启动 停止防火墙
  • django中vue的使用

    转载 xff1a https blog csdn net qq 21389693 article details 105734696 后端使用vue的目的 后端使用vue的目的就是把ajax里面的数据绑定到前端 xff0c 实现动静分离 V
  • centos7更新yum源

    1 centos7安装后 xff0c 默认yum源配置文件位置 xff1a vi etc yum repos d CentOS Media repo 2 下载新的国内yum源 centos自带的是国外yum源 xff0c 下载速度相当慢 换
  • 临时出差宁波随笔

    因公司吉利项目收尾工作 xff0c 需到客户现场施工 主要负责软件项目的质量查验 xff0c 及相关问题修复 一千多公里的路程 xff0c 坐高铁7小时左右 xff0c 真是体验了中国速度 一路由西北而向东南直下 xff0c 抵达舟山群岛附
  • GitHub Copilot

    介绍 GitHub Copilot 是人工智能编程助手 xff0c 它可以帮助你编写程序 在你用visual studio或visual studio code等软件设计工具进行编程时 xff0c 它可以直接给你整行或整个方法的代码提示 x
  • 微信小程序头像昵称填写功能

    自 2022 年 10 月 25 日 24 时后 xff08 以下统称 生效期 xff09 xff0c 用户头像昵称获取规则将进行如下调整 xff1a 自生效期起 xff0c 小程序 wx getUserProfile 接口将被收回 xff
  • mysql 5.7设置数据库大小写敏感

    1 此处讲的是windows环境下的mysql配置 xff0c 小编用的是win10系统 xff1b 2 安装完mysql后 xff0c 数据库默认是大小写不敏感的 xff1b 3 修改my ini文件 xff1a C ProgramDat
  • eclipse 护眼色设置

    1 调整eclipse editor区域背景色 背景颜色向你推荐 xff1a 色调 xff1a 85 饱和度 xff1a 1 2 3 亮度 xff1a 2 0 5 文档都不再是刺眼的白底黑字 xff0c 而是非常柔和的豆沙绿色 xff0c
  • Js apply方法详解,及其apply()方法的妙用

    Js apply方法详解 我在一开始看到javascript的函数apply和call时 非常的模糊 看也看不懂 最近在网上看到一些文章对apply方法和call的一些示例 总算是看的有点眉目了 在这里我做如下笔记 希望和大家分享 如有什么
  • 如何安装双系统之ubuntu安装

    如何安装双系统之ubuntu安装 1 首先在Windows下对磁盘分出一块空闲分区大概100G左右 2 然后下载Ubuntu16 04镜像 xff0c 制作启动盘 3 重启电脑 xff0c 按住对应的键 xff08 不同电脑型号可能不同 x
  • 场景分类综述——Remote Sensing Image Scene Classification Meets Deep Learning

    一 场景分类面临的挑战 场景分类的挑战包括 xff1a 1 类内多样性大 xff0c 2 类间相似性高 也称为类间可分性低 xff0c 3 对象 场景尺度的差异大 就类内的多样性而言 xff0c 挑战主要来自于在同一个语义类中出现的地物的巨
  • 配置服务器的磁盘阵列并正确分区

    磁盘阵列 xff0c 即独立磁盘冗余阵列RAID xff08 Redundant Array of Independent Disks xff09 xff0c 其实就是一个将多块独立磁盘结合在一起 xff0c 从而提高数据的可靠性和I O性
  • 软件项目组织架构安排

    这个主题涉及到三个方面 xff0c 项目计划管理 组织管理和技术管理范畴 项目计划管理是项目管理中的一个大篇章 xff0c 包括时间计划 成本计划 费用计划等在内的各类计划管理 xff0c 不是本文章所谈的范围 xff0c 只是本文主题涉及
  • SpringBoot2.x学习(二):为属性注入配置文件中的值:@ConfigurationProperties注解的使用

    文章目录 一 64 ConfigurationProperties 简单介绍二 64 ConfigurationProperties 使用示范1 创建两个 javaBean2 在 SpringBoot 全局配置文件写入需要注入的值2 1 a