yaml格式,给Java类绑定数据

这里写目录标题

    • 1、基本语法
    • 2、给java bean注入值
    • 3、测试

1、基本语法

# yaml 配置文件写法,代替properties写法
# 严格区分空格# 内注入到配置类中
server:port: 8081# 对象
student:name: jackage: 3# 行内写法 map
student1: {name: jack, age: 3}# array or collections
pets:- dog- cat- turtlepets1: [dog, cat, turtle]# 还可以写随机数 或者 uuid
uuid: ${random.uuid}
random: ${random.int}

2、给java bean注入值

  • 核心
@ConfigurationProperties(prefix = "person")
// yaml 里面写person的属性
// 应用:数据源配置..
  • application.yaml
# yaml 对象注入
dog:name: 八公age: 6person:person-name: abc@163.com # bitqian_${random.uuid}happy: falsemaps: {k1: v1, k2: v2}age: ${random.int}hobbyList:- girl- code- bookdog:name: 拉布拉多age: 3server:port:8081# https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config
  • 这里以dog,和person实体类对各种数据类型说明
  • dog 这里用了properties加载配置,官方推荐ymal
package cn.bitqian.entity;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;/*** @author echo lovely* @date 2020/9/26 21:45*/
@Component
// @ConfigurationProperties(prefix = "dog")
@PropertySource(value = "classpath:application.properties")
public class Dog {// value & SPEL @Value("${server.port}")private String name;private Integer age;public Dog() {}public Dog(String name, Integer age) {this.name = name;this.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;}@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +", age=" + age +'}';}
}
  • person类
package cn.bitqian.entity;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;import javax.validation.constraints.Email;import java.util.List;
import java.util.Map;/*** @author echo lovely* @date 2020/9/26 21:46*/
@Component
// 对应前缀
@ConfigurationProperties(prefix = "person") // setter/getter 与yaml对应
@Validated // 数据校验
public class Person {@Email(message = "必须是邮箱格式")private String personName;private Boolean happy;private Integer age;private Map<String, Object> maps;private List<Object> hobbyList;private Dog dog;public Person() {}public Person(String name, Boolean happy, Integer age,Map<String, Object> maps, List<Object> hobbyList, Dog dog) {this.personName = name;this.happy = happy;this.age = age;this.maps = maps;this.hobbyList = hobbyList;this.dog = dog;}public String getPersonName() {return personName;}public void setPersonName(String personName) {this.personName = personName;}public Boolean getHappy() {return happy;}public void setHappy(Boolean happy) {this.happy = happy;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Map<String, Object> getMaps() {return maps;}public void setMaps(Map<String, Object> maps) {this.maps = maps;}public List<Object> getHobbyList() {return hobbyList;}public void setHobbyList(List<Object> hobbyList) {this.hobbyList = hobbyList;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}@Overridepublic String toString() {return "Person{" +"personName='" + personName + '\'' +", happy=" + happy +", age=" + age +", maps=" + maps +", hobbyList=" + hobbyList +", dog=" + dog +'}';}
}

3、测试

package cn.bitqian;import cn.bitqian.entity.Dog;
import cn.bitqian.entity.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;@SpringBootTest
class Springboot02ApplicationTests {@Resourceprivate Dog dog;@Autowired@Qualifier(value = "person")private Person person;@Testvoid contextLoads() {System.out.println(dog);System.out.println(person);}}

age是随机的int,personName 做了邮箱验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android编程常见问题- Resource ID #0x7f070001 type #0x12 is not valid

问题说明&#xff1a; AndroidRuntime(1705): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitytest/com.example.activitytest.SecondActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f070001 type #…

一款纯css3实现的超炫动画背画特效

之前为大家介绍了很多款由纯css3实现的特效。今天要再给大家带来一款纯css3实现的超炫动画背画特效。代码非常简单&#xff0c;没有引用任何其它js代码。css代码也不多。效果非常炫。一起看下效果图&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <di…

springboot指定首页(静态资源导入)

ResourceProperties小小的源码分析1. 静态资源该放在哪里&#xff1f;2. 首页该如何自动展示&#xff1f;1. 静态资源该放在哪里&#xff1f; springboot 集成了spring-webmvc,这个都是知道的。 该框架的特点是自动装配。 先看WebMvcAutoConfiguration自动装配类 public void…

【从零之三(更)】自定义类中调用讯飞语音包错误解决办法

原文&#xff1a;http://blog.csdn.net/monkeyduck/article/details/24302655 在科大讯飞语音包的Mscdemo中它的方法都是写在Activity中的&#xff0c;这样其实并不是很好&#xff0c;因为Activity只是负责UI交互的&#xff0c;如果项目很简单自然可以&#xff0c;但是一旦比较…

spring 整合quartz

定时框架quartz1. 使用场景2. corn表达式3. 简单使用4. 注意点1. 使用场景 定时任务 周期性执行 &#xff08;每隔多长时间&#xff09; 定时执行&#xff08;每天几点&#xff09; 系统之间的数据交换 两个系统之间的数据 数据整理 报表打印… 2. corn表达式 corn 表达式…

poi excel文档生成与读取

阿帕奇poi excel文档操作1. introduce2. 轮子3. demo 以九九乘法表为例3.1 xls的生成3.2 xlsx的生成3.3 读取xlsx1. introduce poi是什么 答&#xff1a;用于excel的操作的&#xff0c;可以对集合&#xff0c;map进行操作生成对应的excel文档。做报表。 对应的iText是pdf操作的…

echarts生成图表

目录1. echarts是一个优秀的js绘图框架2. 如何使用echats框架绘图&#xff1f;3. 更多彩蛋1. echarts是一个优秀的js绘图框架 ECharts&#xff0c;一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&…

HDU 1394 线段树or 树状数组~

Minimum Inversion Number   Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj. For a given sequence of numbers a1, a2, ..., an, if we move the first m > 0 nu…

servlet,springmvc,springboot转发时页面静态资源404问题

目录不讨论静态资源过滤的问题。。。这个问题重定向不会404&#xff0c;因为重定向是找到了对应的页面&#xff0c;是浏览器决定的。 而转发在相同目录下转发会找到资源。但是从controller&#xff08;根目录&#xff09;里面转发到根目录的下面的目录&#xff0c;转发能过去&…

mysql数据库面试总结

mysql数据库相关1. 数据库事务的四个特性及含义2. 视图的作用&#xff0c;视图可以更改么2.1 什么是视图&#xff0c;作用3. drop,delete与truncate的区别4. 索引的工作原理及其种类5. 连接查询的种类6. 数据库范式7. 数据库优化的思路7.1 sql语句的优化7.2 数据库结构优化7.3 …

springboot, thymeleaf 教你快速搭建网站

目录项目结构国际化curd操作404页面拦截器地址&#xff1a; https://github.com/sevenyoungairye/spring-boot-study员工管理员系统&#xff0c;页面用html thymeleaf模板数据库用的是map集合&#xff0c;没用真实的数据库项目结构 国际化 默认中文 中文&#xff0c;英文切换…

springboot 整合druid

目录1. maven依赖2. yml配置3. druid配置类编写4. 后台性能监控https://github.com/sevenyoungairye/spring-boot-studydruid优点&#xff1a;提供性能监控&#xff0c;配置灵活丰富 1. maven依赖 <!-- mysql驱动 springboot内置 --><dependency><groupId>…

maven 项目管理和构建工具

mvn1. maven 是什么2. maven能解决什么问题3. maven 需要配置和下载4. 使用eclipse创建maven项目5. xml依赖配置 作用范围6. maven的常用命令1. maven 是什么 Maven 在美国是一个口语化的词语&#xff0c;代表专家、内行的意思&#xff0c; Maven是一个项目管理工具&#xff0…

大数据----基于sogou.500w.utf8数据的MapReduce编程

目录 一、前言二、准备数据三、编程实现3.1、统计出搜索过包含有“仙剑奇侠传”内容的UID及搜索关键字记录3.2、统计rank<3并且order>2的所有UID及数量3.3、上午7-9点之间&#xff0c;搜索过“赶集网”的用户UID3.4、通过Rank&#xff1a;点击排名 对数据进行排序 四、参…

springboot 与shiro整合

shiro~ shiro快速入门springboot 整合shiro核心目标清爽pom用户认证授权认证&#xff0c;与数据库交互shiro configuration核心controller 获取shiro 中的token页面控制功能的隐藏和显示https://github.com/sevenyoungairye/spring-boot-study/tree/main/springboot-shiro-07sh…