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

手机网站的静态页面南京高端网站制作公司

手机网站的静态页面,南京高端网站制作公司,品牌建设框架,石家庄网站制作建设ConfigurationProperties使用 ConfigurationProperties是 springboot提供用于将配置文件中的属性值映射到 Java bean对象上。通过使用该注解#xff0c;我们可以方便地将属性文件中的值绑定到一个实例化的类对象上#xff0c;从而方便地在应用程序中使用这些属性。 Configu…ConfigurationProperties使用 ConfigurationProperties是 springboot提供用于将配置文件中的属性值映射到 Java bean对象上。通过使用该注解我们可以方便地将属性文件中的值绑定到一个实例化的类对象上从而方便地在应用程序中使用这些属性。 ConfigurationProperties注解有一个参数prefix用来指定属性公共前缀 Configuration ConfigurationProperties(prefix myconfig) Data public class MyConfigProperty {private int port;//找不到的属性不会注入private String hhh; }一般作为属性注入对象首先定义成一个Configuration。然后使用ConfigurationProperties指定关联属性的前缀。这样如果配置文件中有myconfig.port的值就会自动绑定到MyConfigProperty类的port属性上。前提要有对应的set方法。 除了在类上标注外还可以在Bean方法上 Configuration public class MyConfigByMethod {BeanConfigurationProperties(prefix myconfig)public MyConfig myConfig(){return new MyConfig();} }观察spring的源码还会使用EnableConfigurationProperties引入被ConfigurationProperties修饰的bean 框架自动装配解析 在springboot框架自动装配中有一个内置的用来处理ConfigurationProperties注解的配置类ConfigurationPropertiesAutoConfiguration该配置类引入EnableConfigurationProperties,然后间接引入EnableConfigurationPropertiesRegistrarEnableConfigurationPropertiesRegistrar在configuration初始化的时候会调用其registerBeanDefinitions()方法进行配置类中扩展beanDef的加载。 EnableConfigurationPropertiesRegistrar#registerBeanDefinitions public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {registerInfrastructureBeans(registry);registerMethodValidationExcludeFilter(registry);ConfigurationPropertiesBeanRegistrar beanRegistrar new ConfigurationPropertiesBeanRegistrar(registry);getTypes(metadata).forEach(beanRegistrar::register);}private SetClass? getTypes(AnnotationMetadata metadata) {return metadata.getAnnotations().stream(EnableConfigurationProperties.class).flatMap((annotation) - Arrays.stream(annotation.getClassArray(MergedAnnotation.VALUE))).filter((type) - void.class ! type).collect(Collectors.toSet()); } static void registerInfrastructureBeans(BeanDefinitionRegistry registry) {ConfigurationPropertiesBindingPostProcessor.register(registry);BoundConfigurationProperties.register(registry); }这里主要会完成两件事件 1、registerInfrastructureBeans会将ConfigurationPropertiesBindingPostProcessor注册到容器中这是一个后置处理其属性的赋值会在其后置方法里完成。 2、注册合适的ConfigurationProperties类型bean 当前metadata是正在初始化的Configuration类然后从其注解上获取带有EnableConfigurationProperties注解作为bean定义加载到容器中。 来看几个自动装配的例子 ServletWebServerFactoryAutoConfiguration ServletWebServerFactoryAutoConfiguration上带有EnableConfigurationProperties(ServerProperties.class)注解则ServerProperties会作为一个bean进行处理。ServerProperties上配置有ConfigurationProperties(prefix “server”, ignoreUnknownFields true)我们场景的server.port属性就会注入到ServerProperties.port属性上。 DataSourceAutoConfiguration EnableConfigurationProperties(DataSourceProperties.class) public class DataSourceAutoConfiguration {}ConfigurationProperties(prefix spring.datasource) public class DataSourceProperties{}DataSourceProperties会被做为一个bean加载spring.datasource下的属性会注入到DataSourceProperties属性中。 ConfigurationPropertiesBindingPostProcessor ConfigurationPropertiesBindingPostProcessor是一个bean后置处理器在bean实例化后会调用其后置方法 public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {bind(ConfigurationPropertiesBean.get(this.applicationContext, bean, beanName));return bean; }ConfigurationPropertiesBean.get()方法会判断当前bean是否有ConfigurationProperties注解如果有会进行对应的属性绑定。最后使用org.springframework.boot.context.properties.bind.Binder类进行属性绑定。这里ConfigurationProperties会有两部分一是框架通过autoConfig自动装配的一种是我们自己显示使用ConfigurationProperties修饰的bean。这里看到我们在自定义ConfigurationProperties时候不一定非用Configuration进行修饰只要当前类能被解析成一个bean都会调用该后置方法进行对应配置属性的赋值。 属性元数据信息 可配置的属性在每个jar包META-INFO/spring-configuration-metadata.json文件。这样一般在IDEA配置application文件时候都能根据该文件里的元数据信息进行提示配置。 例如server.port配置在spring-boot-autoconfigure.jar包中 {name: server.port,type: java.lang.Integer,description: Server HTTP port.,sourceType: org.springframework.boot.autoconfigure.web.ServerProperties,defaultValue: 8080 },
http://www.zqtcl.cn/news/704028/

相关文章:

  • 木藕设计网站大全福州网络营销推广产品优化
  • 建设银行网上官方网站怎么批量修改wordpress文章内容
  • 多肉建设网站的目的及功能定位app网站开发成本
  • 如何保存网站上的图片不显示图片报纸网站建设
  • 网站营销的流程品牌推广方式有哪些
  • 网站开发的条件美术字设计
  • 网站可以自己做服务器么wordpress架站教程
  • 用ps怎么做网站导航条怎么做部署iis网站
  • 酒店 网站构建怎么创建自己的网址
  • 江苏推广网站建设业务个人工作室网站源码带后台
  • 色一把做最好的网站赤峰微信网站建设
  • 指定网站长期建设 运营计划网站淘宝客 没备案怎么做
  • 绵阳网站推广排名知名商业网站有哪些
  • 简要描述创建商务站点的商务天津建设工程合同备案网站
  • 做展示空间设计的网站wordpress调用作品分类
  • 网站怎么做访问量统计百度百科怎么创建自己
  • 泉州开发网站的公司有哪些网站页面相似度查询工具
  • 卖文章的网站源码咸阳做网站的公司电话
  • 网站建设案例百度云怎么在手机上传百度云wordpress
  • 传媒公司取名seo网站推广怎么收费
  • 网站建设具体详细过程WordPress usdt收款
  • 网站标题应怎设置生产备案号怎么查询网站
  • 怎样建立网站目录结构网站 项目方案
  • jsp做网站还响应式科技公司网站模板
  • 杭州网站建设设计公司做阀门网站
  • 用模板建站青岛企业网站制作公司
  • 网站建设经费预算表辽宁工程建设招标网
  • sql数据库查询网站模板谷歌浏览器网页版入口
  • 成都h5建站市场监督管理局举报电话
  • 百度推广弄个网站头像要钱吗?最新新闻热点素材