Spring Boot 2.x基础教程之配置元数据的应用

在使用Spring Boot开发应用的时候,你是否有发现这样的情况:自定义属性是有高量背景的,鼠标放上去,有一个Cannot resolve configuration property的配置警告。

如果不对于这个警告觉得烦,想要去掉,那么可以通过设置来去除:

但是,我的建议是不要去掉,因为这个警告正好可以通过高亮来区分你的自定义配置以及框架配置,可以让你快速的分辨哪些是自定义的。

如果你实在想去掉,那么也不建议用上面说的方法,而是建议通过完善配置元数据的方式来完成。所以,今天就来具体说说配置元数据的应用!

啥是配置元数据?

我们不妨打开一个已经创建好的Spring Boot项目,查看一下它的Spring Boot依赖包,可以找到如下图的一个json文件:

这里报错的就是配置的元数据信息。有没有发现这些name的值都很熟悉?其中description是不是也很熟悉?对,这些就是我们常用的Spring Boot原生配置的元数据信息。

这下知道配置元数据可以用来做啥了吧?它可以帮助IDE来完成配置联想和配置提示的展示。

而我们自定义配置之所以会报警告,同时也没有提示信息,就是因为没有这个元数据的配置文件!

配置元数据的自动生成

既然知道了原理,那么接下来我们尝试用一下配置元数据试试!

第一步:创建一个配置类,定义一个自定义配置

@Data
@Configuration
@ConfigurationProperties(prefix = "com.didispace")
public class DidiProperties {

 /**
  * 这是一个测试配置
  */
 private String from;

}

第二步:在pom.xml中添加自动生成配置元数据的依赖

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>

第三步mvn install下这个项目。

此时我们可以在工程target目录下找到元数据文件:

同时,我们在配置文件中尝试编写这个自定义的配置项时,可以看到编译器给出了联想和提示:

并且,编写完配置之后,也没有高亮警告了!

代码示例

本文的相关例子可以查看下面仓库中的chapter1-4目录:

Github:https://github.com/dyc87112/SpringBoot-Learning/

Gitee:https://gitee.com/didispace/SpringBoot-Learning/

到此这篇关于Spring Boot 2.x基础教程之配置元数据的应用的文章就介绍到这了,更多相关Spring Boot 2.x配置元数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何解决SpringBoot2.x版本对Velocity模板不支持的方案

    背景 在springboot1.4.x版本之前对velocity的模板支持的是相当好的,不止出于什么原因springboot从1.5.x以后停止了对velocity的支持,甚至在2.x版本中移除了和velocity的相关代码.目前手上有些项目使用的是velocity模板引擎,同时也使用了springboot,现在想升级到springboot2.x,同时还想继续使用velocity,怎么办?springboot不支持,就自己想办法支持下吧. 思路:把springboot早期版本的velocity支

  • Spring Boot配置元数据方法教程

    这篇文章主要介绍了Spring Boot配置元数据方法教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean上是非常有用的.但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Processor和 关联的 JSON 元数据文件,该 JSON 文档记录每个属性的含义.约束等. 配置元数据 作为开发人员

  • springboot2.x实现oauth2授权码登陆的方法

    一 进行授权页 浏览器输入 http://localhost:8081/oauth/authorize?response_type=code&redirect_uri=http://localhost:8081/callback&client_id=android1&scop=all 二 使用资源站用户登陆 自动跨到资源登陆页,先登陆 三 授权资源类型 登陆成功后,去授权你的资源,这些资源是在AuthorizationServerConfig.configure方法里配置的 @Ov

  • spring boot 2.x html中引用css和js失效问题及解决方法

    在application.properties中配置了static的默认路径 我的static目录结构是这样的 index.html中这样引用css或者js文件,用到了th标签 html使用th标签需要先导入 以上这样配置好了之后发现网页的css和js果然加载出来了. 自定义拦截器失效 在自定义拦截器注册之后发现静态资源被拦截了,注释掉拦截器发现果然是拦截器的问题. 在注册方法上使用了excludePathPatterns()排除静态资源的拦截,发现该方法失效了,查看源码WebMvcConfig

  • SpringBoot2.x 整合Spring-Session实现Session共享功能

    1.前言 发展至今,已经很少还存在单服务的应用架构,不说都使用分布式架构部署, 至少也是多点高可用服务.在多个服务器的情况下,Seession共享就是必须面对的问题了. 解决Session共享问题,大多数人的思路都是比较清晰的, 将需要共享的数据存在某个公共的服务中,如缓存.很多人都采用的Redis,手动将Session存在Redis,需要使用时,再从Redsi中读取数据.毫无疑问,这种方案是可行的,只是在手动操作的工作量确实不少. LZ在这里采用的Spring-Session来实现.它使用代理

  • springboot2.x使用Jsoup防XSS攻击的实现

    后端应用经常接收各种信息参数,例如评论,回复等文本内容.除了一些场景下面,可以特定接受的富文本标签和属性之外(如:b,ul,li,h1, h2, h3...),需要过滤掉危险的字符和标签,防止xss攻击. 一.什么是XSS? 看完这个,应该有一个大致的概念. XSS攻击常识及常见的XSS攻击脚本汇总 XSS过滤速查表 二.准则 永远不要相信用户的输入和请求的参数(包括文字.上传等一切内容) 参考第1条 三.实现做法 结合具体业务场景,对相应内容进行过滤,这里使用Jsoup. jsoup是一款Ja

  • Spring Boot 2.x基础教程之配置元数据的应用

    在使用Spring Boot开发应用的时候,你是否有发现这样的情况:自定义属性是有高量背景的,鼠标放上去,有一个Cannot resolve configuration property的配置警告. 如果不对于这个警告觉得烦,想要去掉,那么可以通过设置来去除: 但是,我的建议是不要去掉,因为这个警告正好可以通过高亮来区分你的自定义配置以及框架配置,可以让你快速的分辨哪些是自定义的. 如果你实在想去掉,那么也不建议用上面说的方法,而是建议通过完善配置元数据的方式来完成.所以,今天就来具体说说配置元

  • Spring Boot 2.x基础教程之使用@Scheduled实现定时任务的方法

    我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信.邮件之类的操作,也可能会定时地检查和监控一些标志.参数等. 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间. 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置 @SpringBootApplication @EnableScheduling publi

  • spring boot实战之内嵌容器tomcat配置

    本文介绍了spring boot实战之内嵌容器tomcat配置,分享给大家,具体如下: 默认容器 spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 通过需要用到的就是端口.上下文路径的修改,在spring boot中其修改方法及其简单: 在资源文件中配置: server.port=9090 server.contextPath=/lkl 启动spring boot 2015-10-04 00:06:55.768 INFO

  • Spring Boot与前端配合与Idea配置部署操作过程

    在开发项目时,后台人员可能来不及写html页面,这个时候需要相互配合.前端人员开发项目都有自己的一套项目结构,而Spring Boot或后台人员也有自己的一套项目结构,导致写出的静态页面无法直接拿过来就用. 在研究了Spring Boot的项目结构之后,还是可以通过一些方法来直接使用前端人员开发的页面. 前端人员操作过程 1.下载WAMP,或者XAMPP,或其它的web服务器集成软件.XAMPP是跨平台的集成软件,WAMP只能再Windows上使用. 注意:设置Web服务器禁止缓存,否则难以调试

  • spring boot集成shiro详细教程(小结)

    我们开发时候有时候要把传统spring shiro转成spring boot项目,或者直接集成,name我们要搞清楚一个知识,就是 xml配置和spring bean代码配置的关系,这一点很重要,因为spring boot是没有xml配置文件的(也不绝对,spring boot也是可以引用xml配置的) 引入依赖: <dependency> <artifactId>ehcache-core</artifactId> <groupId>net.sf.ehcac

  • Spring Boot + Mybatis多数据源和动态数据源配置方法

    网上的文章基本上都是只有多数据源或只有动态数据源,而最近的项目需要同时使用两种方式,记录一下配置方法供大家参考. 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 多数据源 首先要将spring boot自带的DataSourceAutoConfiguration禁掉,因为它会读取application.properties文件的spring.datasource.*属性并自动配置单数据源.在@SpringBootApplication注解中添加ex

  • Spring Boot 集成Shiro的多realm配置过程

    我在做毕设的时候采用shiro进行登录认证和权限管理的实现.其中需求涉及使用三个角色分别是:学生.教师.管理员.现在要三者实现分开登录.即需要三个Realm--StudentRealm和TeacherRealm.AdminRealm,分别处理学生.教师和管理员的验证功能. 但是正常情况下,当定义了多个Realm,无论是学生登录,教师登录,还是管理员登录,都会由这三个Realm共同处理.这是因为,当配置了多个Realm时,我们通常使用的认证器是shiro自带的org.apache.shiro.au

  • Spring Boot 2.4 对多环境配置的支持更改示例代码

    在目前最新的Spring Boot 2.4版本中,对配置的加载机制做了较大的调整.相关的问题最近也被问的比较多,所以今天就花点时间,给大家讲讲Spring Boot 2.4的多环境配置较之前版本有哪些变化. 多环境配置 2.4版本之前 先回顾下,2.4版本之前,我们在yaml配置文件中,使用spring.profiles来定义不同环境的标识,比如下面这样: spring: profiles: "dev" name: dev.didispace.com --- spring: profi

  • spring boot集成redis基础入门实例详解

    目录 redis redis和spring boot spring boot集成redis redis使用 redis在spring boot中存取数据 set写入数据 get读取数据 模拟接口请求读取redis中的数据 总结 redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储. 可以进行master-slave模式的数据备份 更多redis相关文档请查看 redis官方文档 redis和spring boot redis

随机推荐