iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot怎么配置文件给实体注入值
  • 564
分享到

SpringBoot怎么配置文件给实体注入值

2023-06-29 05:06:55 564人浏览 安东尼
摘要

这篇文章主要介绍了SpringBoot怎么配置文件给实体注入值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot怎么配置文件给实体注入值文章都会有所收获,下面我们一起来看看吧。配置文件给实体注入

这篇文章主要介绍了SpringBoot怎么配置文件给实体注入值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springBoot怎么配置文件给实体注入值文章都会有所收获,下面我们一起来看看吧。

配置文件给实体注入值

SpringBoot 默认的全局配置文件有两个 application.properties 和application.yml

properties用法

# 例如修改端口号 直接赋值server.port=8888

yaml用法

# 例如修改端口号server:    port: 8888
  • YML中赋值是以键值对的形式,且利用缩进表示层级关系,同一级缩进必须一致

  • 大小写敏感,支持松散写法,且冒号后面必须有一个空格

通过配置文件给实体类注入属性

// 实体类@Component // 把实体类放入到spring容器中@ConfigurationProperties(prefix = "student") // 识别配置文件public class Student {    private String name;    private int age;    private boolean sex;    private Date birthday;    private Map<String, Object> location;    private String[] hobbies;    private List<String> skills;    private Pet pet;        // .... set/get/toString}
# yml 配置文件student: name: zsage: 23sex: truebirthday: 2020/10/1location: {province: 湖北,city: 武汉, zone: 洪山}hobbies: [足球, 篮球]skills: [编程, 金融]pet: nickName: wcstrain: hsq

在这里注意不同数据类型的写法,简单的数据直接赋值

# map类型和对象类型 的两种写法# 1.行内写法location: {province: 湖北,city: 武汉, zone: 洪山}pet: {nickName: wc, strain: hsq}# 2.分行写location:province: 湖北city: 武汉zone: 洪山pet: nickName: wcstrain: hsq
数组、list、set# 1、行内写法, 其中中括号还可以省略hobbies: [足球, 篮球]skills: [编程, 金融]# 2、分行写hobbies:- 足球- 篮球skills: - 编程- 金融

到 SpringBoot 测试文件中测试输出

    @Autowired    Student student;    @Test    void contextLoads() {        System.out.println(student);    }

结果

Student{name='zs', age=23, sex=true, birthday=Thu Oct 01 00:00:00 CST 2020, location={province=湖北, city=武汉, zone=洪山}, hobbies=[足球,篮球], skills=[编程, 金融], pet=Pet{nickName='wc', strain='hsq'}}

上面yml中注意

# 如果对字符串加单引号,双引号会有什么区别location: {province: "湖北",city: '武汉', zone: 洪山}# 如果引号中只是字符串时没什么区别location: {province: "湖\n北",city: '武\n汉', zone: 洪\n山}# 此时双引号中的转义字符会被识别,会换行,单引号和不加引号会原样输出

也可以使用properties注入

student.name=lsstudent.age=24...

其中properties文件和yml文件中的值可以互相引用。两个配置文件可以互补,properties文件优先级高于yml

另外如果要注入的值不在这两个默认配置文件中,这是需要使用@PropertySource注解,遗憾的是该注解只支持properties文件,不支持yml文件

@PropertySource(value = {"classpath:conf.properties"})public class Student {    ...

配置文件值注入方式

1.1 从全局配置文件中读取配置到实体类 (@ConfigurationProperties)

配置文件 (application.yml)(写在application.properties也可以,格式变一下即可)

person:  lastName: Mary  age: 16  birthDate: 2004/01/01  maps: {one:1,two:2,three:3}  lists:    - 1    - 2    - 3  pet:    name: wanGCai    age: 3

实体类(javaBean):

@Component@ConfigurationProperties(prefix = "person")public class Person {    private String lastName;    private Integer age;    private Date birthDate;    private Map<String,Object> maps;    private List<Object> lists;    private Pet pet;    //省略get,set方法    @Override    public String toString() {        String mapValue = "";                if(this.maps!=null){            for(String key:this.maps.keySet()){                Object value = this.maps.get(key);                mapValue += key+"\t"+value+"\t";            }        }        return "lastName:"+this.lastName+                "\nage:"+this.age+                "\nbirthDate:"+this.birthDate+                "\nmaps:"+mapValue+                "\nlists:"+this.lists+                this.pet;    }}
public class Pet {    private String name;    private Integer age;    //省略get,set方法        @Override    public String toString() {        return "\nPet:\n\tPet name:"+this.name+                "\n\tPet age:"+this.age+"\n";    }}

我们可以导入配置文件处理器,以后编写配置就有提示了(pom.xml)

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

SpringBoot怎么配置文件给实体注入值

测试

@SpringBootTestclass DemoApplicationTests {    @Autowired    Person person;    @Test    void contextLoads() {        System.out.println(person.toString());    }}

1.2 全局配置文件注入值(@Value)

@Value 其实是Spring中的注解,其功能使用xml文件描述是这样的:

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

其中property表示的是Person类中的各项属性,name用于指定具体属性,value用于指定值。

value的值主要有3种:

  • 字面量,也就是数字(1,2&hellip;)、字符串(abc)、布尔变量(true、false)等常量

  • ${key},从环境变量、配置文件中获取值

  • #{SpEL}, Spring的表达式语言,可以执行一些计算,调用一些函数

@Componentpublic class Person {    @Value("${person.last-name}")  //@Value("#{'Lily'.toUpperCase()}")    private String lastName;    @Value("#{11*2}")    private Integer age;    private Date birthDate;    private Map<String,Object> maps;    private List<Object> lists;    private Pet pet;        //省略get,set和toString    }

1.3 从指定文件读取并配置实体类(@PropertySource+@ConfigurationProperties)

在 resources 目录下创建 person.properties

person.lastName = Lilyperson.age = 20person.birthDate = 2000/01/01person.maps.one = 1person.maps.two = 2person.lists = a,b,chperson.pet.name = wangcaiperson.pet.age = 3

更改 Person 类中的注解

@Component@PropertySource(value = {"classpath:person.properties"})@ConfigurationProperties(prefix = "person")public class Person {    //...省略属性,get,set,toString}

要注意的是,PropertySource 只支持properties文件,不支持yml文件读取。

1.4 从指定文件读取并注入值(@PropertySource+@Value)

创建配置文件

更改注释

@Component@PropertySource(value = {"classpath:person.properties"})public class Person {        @Value("${person.last-name}")    private String lastName;        //...省略属性,get,set,toString}

关于“SpringBoot怎么配置文件给实体注入值”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SpringBoot怎么配置文件给实体注入值”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: SpringBoot怎么配置文件给实体注入值

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot怎么配置文件给实体注入值
    这篇文章主要介绍了SpringBoot怎么配置文件给实体注入值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么配置文件给实体注入值文章都会有所收获,下面我们一起来看看吧。配置文件给实体注入...
    99+
    2023-06-29
  • SpringBoot 配置文件给实体注入值方式
    目录配置文件给实体注入值properties用法yaml用法通过配置文件给实体类注入属性上面yml中注意也可以使用properties注入配置文件值注入方式1.1 从全局配置文件中读...
    99+
    2024-04-02
  • springboot yml配置文件值注入方式
    目录yml配置文件值注入搭建项目创建实体类spring boot核心配置文件application.yml测试类运行自动注入yml文件和properties文件yml文件的自动注入c...
    99+
    2024-04-02
  • springboot yml配置文件值的注入方式是什么
    这篇文章跟大家分析一下“springboot yml配置文件值的注入方式是什么”。内容详细易懂,对“springboot yml配置文件值的注入方式是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够...
    99+
    2023-06-26
  • springboot配置文件中使用${}注入值的方式有哪些
    这篇文章主要为大家展示了“springboot配置文件中使用${}注入值的方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot配置文件中使用${}注入值的方式有哪些”这篇...
    99+
    2023-06-29
  • Mybatis怎么在配置文件中给实体类起别名
    本篇内容介绍了“Mybatis怎么在配置文件中给实体类起别名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis 给实体类起别名全局...
    99+
    2023-06-20
  • springboot配置文件中使用${}注入值的两种方式小结
    目录配置文件中使用${}注入值方式在springboot中使用System.setProperty设置参数配置文件自扫描spring配置文件${}的用法话不多说直接看就完事了配置文件...
    99+
    2024-04-02
  • 使用@Value值注入及配置文件组件扫描
    @Value值注入及配置文件组件扫描 spring配置文件对应的是父容器,springMVC配置文件产生的是子容器,前者一般配置数据源,事务,注解等,当然还可以进一步将一些配置细化到...
    99+
    2024-04-02
  • SpringBoot使用@Value实现给静态变量注入值
    SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值 例如 application-dev.properties 配置文件有如下配置: 给普通变量...
    99+
    2024-04-02
  • SpringBoot实现yml配置文件为变量赋值
    目录yml配置文件为变量赋值1. 创建person类和Car类2. 为person类创建yml配置文件3.创建启动类在yml文件中配置变量例如:二维码的内容yml配置文件为变量赋值 ...
    99+
    2024-04-02
  • SpringBoot Mybatis怎么配置文件
    这篇文章主要介绍“SpringBoot Mybatis怎么配置文件”,在日常操作中,相信很多人在SpringBoot Mybatis怎么配置文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-05
  • 使用Springboot根据配置文件动态注入接口实现类
    Springboot根据配置文件动态注入接口实现类 需求 最近在做一个Springboot项目,需要面向不同需求的客户,但是为了方便管理分支,需要将不同客户的需求都写到同一套代码中,...
    99+
    2024-04-02
  • Mybatis 如何在配置文件中给实体类起别名
    Mybatis 给实体类起别名 全局配置文件中的标签: 标签3: typeAliases 别名处理器 可以为java类型起别名 别名忽略大小写 原来: <select id...
    99+
    2024-04-02
  • 如何使用@Value值注入及配置文件组件扫描
    本篇内容介绍了“如何使用@Value值注入及配置文件组件扫描”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!@Value值注入及配置文件组件扫...
    99+
    2023-06-20
  • SpringBoot通过@Value实现给静态变量注入值详解
    目录一、简介二、@Value给静态变量注入值方案一方案二三、总结一、简介 SpringBoot 中给普通变量注入值只需在变量上添加 @Value 注解即可。 application....
    99+
    2024-04-02
  • springboot怎么读取配置文件
    在Spring Boot中,可以通过`@Value`注解、`Environment`接口、`@ConfigurationProper...
    99+
    2023-10-25
    springboot
  • springboot注入yml配置文件 list报错的解决方案
    目录springboot注入yml配置文件 list报错注入list的正确方法springboot yml 配置文件注入Map,Listspringboot注入yml配置文件 lis...
    99+
    2024-04-02
  • SpringBoot注入自定义的配置文件的方法详解
    目录一、简介二、代码实践2.1 通过@value注解实现参数加载2.2 通过@ConfigurationProperties注解实现参数加载2.3 通过@PropertySource...
    99+
    2024-04-02
  • spring@value注入配置文件值失败的原因分析
    目录spring@value注入配置文件值失败的原因spring配置文件@Value注解注入失败或为null解决方案代码示例问题解析问题拓展spring@value注入配置文件值失败...
    99+
    2024-04-02
  • 如何给yml配置文件的密码加密(SpringBoot)
    目录1.低版本2.x1)引入jar包2)生成密码3)测下解密4)yml配置5)测测登录2.高版本 3.x1)引入jar包2)生成密码3)yml配置最近在忙着解决规约扫描的问题,其一就...
    99+
    2022-11-13
    yml配置文件 yml密码加密 yml配置文件密码加密
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作