关于SpringBoot中yml文件的key值不匹配,引发的空指针异常解决方案
一. 问题背景
很多小伙伴都知道SpringBoot中常见的配置文件有三种,分别是yml、yaml、properties三种类型。
而有些时候我们需要在SpringBoot配置文件中去配置一些自定义的内容,比如邮箱的秘钥信息以及短信秘钥信息等。而配置完毕之后我们就需要进行配置的读取,在SpringBoot常见读取自定义配置信息的方式有两种,分别为@Value以及@ConfigurationProperties。
另外我们要注意,使用@ConfigurationProperties的时候,需要在pom文件中引入
spring-boot-configuration-processor的起步依赖。但是在读取配置数据的过程中,如果不注意细节的话,就会容易引发让人迷惑的空指针异常!!!
接下来就用一个实际案例,给大家重新这个异常的产生及解决办法。
二. 实际案例
为了给大家讲清楚今天的这个异常,波哥先给大家设计一个案例,实现过程如下。
2.1 创建学生简介类
2.2 准备一个学生类同时关联学生简介类
2.3 在yml文件中配置学生类需要的数据
yaml文件内容如下:
2.4 读取yml文件的数据
我们选择@ConfigurationProperties方式读取,此时在学生类上方加上注解并指定yml中的前缀。
Tips:一定要在学生类以及学生简介类中国提供getter和setter方法,不然读取数据注入将会失败,因为@ConfigurationProperties注入数据的原理,是根据set方法实现的。
2.5 准备配置类将学生对象注入进IOC容器
2.6 在启动类中获取容器并得到学生类的bean对象
2.7 运行启动类会发现控制台出现空指针异常
2.8 原因解析
2.9 解决办法以及建议
在yaml文件中做自定义配置时,需要将配置的key名与注入类名的变量名一致!!!
student:
name: zhangsan
sex: male
studentIntroduce: ##修改位置
id: 1
detailed: The student is very excellent !!!
重新运行启动类!!!
相关推荐HOT
更多>>如何添加Java环境变量?
要添加Java环境变量,可以按照以下步骤:并安装Java开发工具包(JDK)、找到Java安装路径、设置JAVA_HOME环境变量、添加Java可执行文件路径到PATH...详情>>
2023-05-04 11:00:56从零开始学Java之String字符串的编码
对很多小白来说,可能不明白什么是字符编码,也不知道为什么要有字符编码,所以先来给大家简要地介绍一下字符编码。详情>>
2023-05-04 10:21:02新手速来!几步带你掌握MyBatis Plus
Mybatis-Plus(简称MP)是一款Mybatis的增强工具,它是在Mybatis的基础上实现的简化开发工具。Mybatis-Plus给我们提供了开箱即用的CRUD操作、自动...详情>>
2023-04-28 10:57:09学习java需要什么基础?基础知识有哪些?
网络编程:了解基本的网络编程概念和协议,熟悉 Java 网络编程 API。建议在学习 Java 之前,先学习一些基础的编程语言,如 C 或 Python 等,这...详情>>
2023-04-28 10:41:14