当前位置: 首页 > news >正文

秦皇岛工程建设信息网站盐城网页设计方案

秦皇岛工程建设信息网站,盐城网页设计方案,php网站开发面试,炎推小说推广下载1、前言Springboot项目配置properties或yaml文件时候,会有很多spring相关的配置提示。这个是如何实现的?如果我们自己的配置属性,能否也自动提示?2、Springboot配置自动提示其实IDE是通过读取配置信息的元数据而实现自动提示的。S…

1、前言

Springboot项目配置properties或yaml文件时候,会有很多spring相关的配置提示。这个是如何实现的?如果我们自己的配置属性,能否也自动提示?

2、Springboot配置自动提示

其实IDE是通过读取配置信息的元数据而实现自动提示的。Springboot的元数据就在目录META-INF下。通过starter部分结构,我们可以看到如下:

其实,springboot自动提示元数据就在META-INF中的spring-configuration-metadata.json或additional-spring-configuration-metadata.json。

打开additional-spring-configuration-metadata.json可以看到json结构:

{"groups": [],"properties": [{"name": "spring.devtools.add-properties","type": "java.lang.Boolean","description": "Whether to enable development property defaults.","defaultValue": true}],"hints": []
}

properties:为设置的提示属性,name为属性名称,type为属性类型,defaultValue为该属性默认值,description为属性描述。

groups:为properties提供了一个有上下文关联的分组。本身并不指定一个值。

hints:为属性设置多个提示值。

具体配置描述详见官网地址:https://docs.spring.io/spring-boot/docs/current/reference/html/configuration-metadata.html

3、手写尝试

1、创建starter工程

创建starter模块工程MySpringbootDemoModule1

2、自动装配

创建属性映射类,DemoProperties:

package org.example;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;@EnableConfigurationProperties({DemoProperties.class})
@ConfigurationProperties(prefix = "org.shamee")
public class DemoProperties {private String name;private Integer 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;}
}

创建MyAutoConfiguration:

package org.example;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyAutoConfiguration {@Beanpublic DemoProperties demoProperties(){return new DemoProperties();}}

配置spring.factories:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.example.MyAutoConfiguration

到此,一个简单的starter模块就已创建完毕,但是此时,如果直接使用,IDE是无法自动提示的。这里我们期望IDE帮我们自动提示DemoProperties中的两个属性,org.shamee.name和org.shamee.age。

3、创建元数据

那么,我们在resources下创建META-INF/additional-spring-configuration-metadata.json,并给与配置信息。

{"properties": [{"name": "org.shamee.name","type": "java.lang.String","defaultValue": "test"},{"name": "org.shamee.age","type": "java.lang.Integer","defaultValue": 12}]
}

4、安装使用

到此,就已经完成了一个能够让IDE自动帮我们提示的starter依赖。执行mvn install安装。

5、使用

创建一个主工程:MySpringbootDemo

pom.xml添加上述starter依赖。

刷新以来后,尝试application.properties上配置我们自定义的属性。

可以看到,IDE已经自动帮我们提示了属性名称以及默认的值。嗯,爽了。

看下starter依赖结构:

好了,又白嫖了一个无聊的小知识!!!😃😃😃

http://www.sczhlp.com/news/106038/

相关文章:

  • 网站推广的概念aspnet网站开发技术
  • 厦门比较好的网站设计公司内蒙古呼和浩特市网络公司
  • 谷歌网站推广方案网站建设与维护王欣
  • 秦皇岛市教育考试院网站南阳网站建设南阳
  • 网站开发学历要求义乌网站建设公司书生商友
  • 网站设计的逻辑企业cms免费
  • 建设部网站查询网页制作电子教程
  • 想找Axure替代?这6个原型设计工具值得一试
  • H5游戏性能优化系列-----cpu相关优化
  • IPA 混淆实战 IPA 混淆、IPA 加固、ipa 文件安全与成品包防护全流程指南
  • php网站建设的基本流程图上海公共场所
  • 微网站建设最新报价湛江网站建设与网页
  • 网站建设课题简介下载百度免费
  • 乌兰浩特网站建设物流外贸是做什么的
  • 番禺网站开发费用网站seo内链建设
  • 实用指南:javaweb HTML基本介绍/常见标签
  • 文档处理控件Aspose.Words教程:在 C# 中将 Markdown 转换为 PDF
  • TCP协议与wireshark
  • 高端品牌网站建设策略wordpress仿36kr氪主题
  • 国美在线网站建设建筑模板是干嘛用的
  • 性能网站建设体贴的聊城网站建设
  • 天津网站建设基本流程图wordpress全站同一个标题
  • 免费制作微信网页网站soho建设外贸网站
  • 报关做业务可以上哪些网站开发一个小网站多少钱
  • 天津免费建网站工业园区网站建设方案
  • 网站域名查询ipwordpress升级php7
  • 广州市做民宿什么网站比较好邯郸招工信息网
  • 苏州建站费用长安网站建设推广公司
  • docker容器mysql导入sql文件
  • ObjectSense 包与模块:代码组织的艺术