返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot中如何通过yml为实体类注入属性
  • 543
分享到

Springboot中如何通过yml为实体类注入属性

2024-04-02 19:04:59 543人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录1.编写实体类2.编写yml文件3.测试4.结果 5.可以不用@ConfigurationProperties(prefix = “person&rdquo

延伸:以后除了可以为实体类注入属性,还可以为配置类注入相关的配置信息

1.编写实体类

@Component
@ConfigurationProperties(prefix = "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;
    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }
    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 Boolean getBoss() {
        return boss;
    }
    public void setBoss(Boolean boss) {
        this.boss = boss;
    }
    public Date getBirth() {
        return birth;
    }
    public void setBirth(Date birth) {
        this.birth = birth;
    }
    public Map<String, Object> getMaps() {
        return maps;
    }
    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }
    public List<Object> getLists() {
        return lists;
    }
    public void setLists(List<Object> lists) {
        this.lists = lists;
    }
    public Dog getDog() {
        return dog;
    }
    public void setDog(Dog dog) {
        this.dog = dog;
    }
}
  • @Component 表示将当前类的创建工作交给spring容器管理
@ConfigurationProperties(prefix = “person”) 

用于表示该类需要读取的配置信息,prefix用于指示读取哪一个配置信息

Person类依赖了一个Dog类,如下:

public class Dog {
    private String name;
    private Integer age;
    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + 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;
    }
}

2.编写yml文件

@ConfigurationProperties(prefix = “person”)

Person类的这个注解就会去找yml中对应的配置信息

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

3.测试

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootQuickStartApplicationTests {
    @Autowired
    Person person;
    @Test
    public void demo1() {
        System.out.println(person);
    }
}

4.结果 

注意:有可能中文在这个地方打印会出现乱码,原因是yml的编码和java文件的编码不一样导致,我们需要将其配成一致的编码,如都设置成utf-8。

5.可以不用@ConfigurationProperties(prefix = “person”)注解方式

使用@Value的方式注入属性值

@Value注解等价于:

以三个属性字段为例

我们既可以从配置文件取值,也可以通过字面量直接赋值,当属性值少的时候这种方式特别方便。

    @Value("${person.lastName}")
    private String lastName;
    @Value("${person.age}")
    private Integer age;
    @Value("true")
    private Boolean boss;

效果如下,由于只注入了三个属性,其余属性则为空

6.@ConfigurationProperties(prefix = “person”)

默认是从主配置文件中读取相关信息,我们可以使用

@PropertySource(value = {“配置文件的路径”})

来指定需要读取的配置文件

6.1写一个dog.properties配置Dog类的相关配置信息

dog.name=puppy
dog.age=24

6.2为Dog类注入属性

@PropertySource(value = {"classpath:dog.properties"})
@Component
@ConfigurationProperties(prefix = "dog")
public class Dog {
    private String name;
    private Integer age;

6.3效果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: Springboot中如何通过yml为实体类注入属性

本文链接: https://lsjlt.com/news/147923.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Springboot中如何通过yml为实体类注入属性
    目录1.编写实体类2.编写yml文件3.测试4.结果 5.可以不用@ConfigurationProperties(prefix = “person&rdquo...
    99+
    2024-04-02
  • SpringBoot如何通过注解注入Bean
    这篇文章主要为大家展示了“SpringBoot如何通过注解注入Bean”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot如何通过注解注入Bean”这篇文章吧。1、背景我们谈到Sp...
    99+
    2023-06-29
  • 基于springboot bean的实例化过程和属性注入过程
    目录bean的实例化过程和属性注入过程bean实例化流程说明bean的实例化过程和属性注入过程 了解过springboot的加载流程的都知道springboot初始化bean都在re...
    99+
    2024-04-02
  • 如何通过CSS的@font-face属性实现在网页中嵌入任意字体
    本文小编为大家详细介绍“如何通过CSS的@font-face属性实现在网页中嵌入任意字体”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何通过CSS的@font-face属性实现在网页中嵌入任意字体”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-06-26
  • SpringBoot项目如何将Bean注入到普通类中
    目录如何将Bean注入到普通类中Spring管理的类获得一个注入的Bean方式非Spring管理的类获得一个注入的Bean方式普通类中通过ApplicationContext上下文获...
    99+
    2024-04-02
  • Springboot如何通过yml配置文件为静态成员变量赋值
    目录通过yml配置文件为静态成员变量赋值这里我强调一句Springboot静态变量读取yml配置信息解决方式1解决方式2通过yml配置文件为静态成员变量赋值 我们对springboo...
    99+
    2022-11-13
    Springboot配置变量 yml配置文件 静态成员变量赋值
  • 如何通过名称获取结构体的属性?
    偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《如何通过名称获取结构体的属性?》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看...
    99+
    2024-04-04
  • SpringBoot通过自定义注解实现配置类的自动注入的实现
    目录前言实现思路自定义配置类读取配置自定义注解创建子配置Bean通过反射进行people bean的注入使用效果回顾延伸前言 SpringBoot中通过@ConfigurationP...
    99+
    2023-05-16
    SpringBoot配置类自动注入 SpringBoot 自动注入
  • 如何在css中可以通过“font-family”属性来设置字体
    这篇文章给大家分享的是有关如何在css中可以通过“font-family”属性来设置字体的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在css中可以通过“font-family”属性来设置字体,“font-fam...
    99+
    2023-06-14
  • 使用Spring如何实现注入属性
    使用Spring如何实现注入属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在spring框架中,属性的注入我们有多种方式,我们可以通过构造方法注入,可以通过...
    99+
    2023-05-31
    spring 属性注入
  • springboot中autowire注入为null如何解决
    这期内容当中小编将会给大家带来有关springboot中autowire注入为null如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。这个问题困扰了很久,有些类不是controller在使用auto...
    99+
    2023-06-06
  • Springboot详解如何实现SQL注入过滤器过程
    目录1.过滤器SqlInjectFilter2.请求装饰类CustomRequestWrapper3.过滤器注册4.测试辅助类4.1 结果对象ResultObj4.2 Restful...
    99+
    2024-04-02
  • 如何通过一张图搞懂springBoot自动注入原理
    目录@SpringBootApplication注解解读1.@SpringBootConfiguration2.@EnableAutoConfiguration@Inherited@...
    99+
    2024-04-02
  • 如何解决SpringMvc中普通类注入Service为null的问题
    本篇内容介绍了“如何解决SpringMvc中普通类注入Service为null的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Sprin...
    99+
    2023-06-20
  • css如何通过border-width属性为边框指定宽度
    这篇文章主要介绍css如何通过border-width属性为边框指定宽度,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 为边框指定宽度有两种方法:可以指定长度值,比如 2px 或 ...
    99+
    2024-04-02
  • 在SpringBoot中如何实现注入值
    在SpringBoot中如何实现注入值?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一,字段直接注入 @Value("${example.url}") p...
    99+
    2023-05-31
    springboot bo 注入值
  • SpringBoot中如何实现注入依赖
    SpringBoot中如何实现注入依赖?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天给大家介绍一下SpringBoot中是如何实现依赖注入的功能。在以往spring使用...
    99+
    2023-05-31
    springboot bo 依赖注入
  • springboot如何通过session实现单点登入详解
    目录我对于单点的理解效果图走起代码部分总结我对于单点的理解 正常的登录 进入自己系统的登录页面,输入用户名密码,登录系统。 单点登录 来到一个第三方的登录页面,输入用户名密码,在这个...
    99+
    2024-04-02
  • 详解Springboot如何通过注解实现接口防刷
    目录前言1、实现防刷切面PreventAop.java1.1 定义注解Prevent1.2 实现防刷切面PreventAop2、使用防刷切面3、演示前言 本文介绍一种极简洁、灵活通用...
    99+
    2024-04-02
  • SpringBoot如何通过自定义注解实现参数校验
    今天小编给大家分享一下SpringBoot如何通过自定义注解实现参数校验的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. ...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作