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

西湖区外贸网站建设51找呀模板网

西湖区外贸网站建设,51找呀模板网,温州网页设计培训学校,南宁制作网站服务商自定义bean加载到spring容器中的两种方式#xff1a; 1.在类上添加注解Controller、RestController#xff08;本质是Controller#xff09;、Service、Repository、Component2.使用Configuration和Bean 这篇文章主要介绍第二种方式原理#xff08;因为在实际使用中#…自定义bean加载到spring容器中的两种方式 1.在类上添加注解Controller、RestController本质是Controller、Service、Repository、Component2.使用Configuration和Bean 这篇文章主要介绍第二种方式原理因为在实际使用中第二种方式遇到了一个问题记录一下。 抛出问题 在微服务中定义一个文件上传模块目的是为了以后在其他任何需要的微服务中直接引用。由于配置是在配置文件中需要使用Value(${xxx})获取配置(VolcengineUtils.java中获取)故需要被spring注解扫描到并初始化上传对象但是始终没有初始化这个配置文件 Configuration public class VolcengineConfig {Value(${meta.volcengine.endPoint})private String endPoint;Value(${meta.volcengine.region})private String region;Value(${meta.volcengine.accessKey})private String accessKey;Value(${meta.volcengine.secretKey})private String secretKey;Value(${meta.volcengine.bucketName})private String bucketName;Beanpublic void initVolcengineInfo(){VolcengineUtils.setClient(new TOSV2ClientBuilder().build(region, endPoint, accessKey, secretKey));VolcengineUtils.setBucketName(bucketName);} } 思考1直接把配置文件放到项目中没有问题移出作为一个模块怎么就会有问题 对比后发现服务项目和上传组件的包package的名称不一样 服务项目 上传组件 然后修改上传组件的包名为com.meta.modules.file.volcengine 再次启动没问题了 思考2.为什么修改包名相同就可以了那如果对外提供组件总不能要求别人的服务项目和组件同包名吧 于是继续寻找解决方案然后找到在resources资源目录下META-INF\spring.factories中增加扫描路径可以被spring加载于是增加META-INF\spring.factories文件(上传组件包名已还原为com.meta.core.file.volcengine) org.springframework.boot.autoconfigure.EnableAutoConfiguration\ com.meta.core.file.volcengine.VolcengineConfig再次启动没问题了 回答思考1不同包名不能被扫描问题 1.服务启动项点击注解SpringBootApplication进入 2.点击注解ComponentScan进入 注释翻译如果指定的包没有被定义则扫描将从声明该注释的类的包中进行。也就是如果没有配置ComponentScan注解中basePackageClasses、basePackages、value的值则从SpringBootApplication注解类所在的包开始扫描 思考3.spring.factories配置是如何加载的 1.服务启动项点击注解SpringBootApplication进入–点击注解EnableAutoConfiguration进入 发现有一个自动配置导入选择器点击进入AutoConfigurationImportSelector.class类中 通过断点即可发现在spring.factories中指定的配置已经被加载到spring容器中。 优化VolcengineConfig类 使用spring.factories加载配置显然更通用其次此处只需要初始化一次配置不需要把initVolcengineInfo声明为bean。使用PostConstruct在bean加载完成后初始化一次即可 public class VolcengineConfig {Value(${meta.volcengine.endPoint})private String endPoint;Value(${meta.volcengine.region})private String region;Value(${meta.volcengine.accessKey})private String accessKey;Value(${meta.volcengine.secretKey})private String secretKey;Value(${meta.volcengine.bucketName})private String bucketName;PostConstructpublic void initVolcengineInfo(){VolcengineUtils.setClient(new TOSV2ClientBuilder().build(region, endPoint, accessKey, secretKey));VolcengineUtils.setBucketName(bucketName);} }
http://www.hkea.cn/news/14281129/

相关文章:

  • 电商网站做导购做网站前期创建文件夹
  • 石家庄市高新区建设局网站杭州利兴建设官方网站
  • 在相亲网站认识了一个做红酒生意的杭州下城区建设局网站
  • 深圳网站系统哪家强wordpress4.8优化
  • 电商类网站开发定制包头球形网架公司
  • 前端和网站部署做网站的最新版高性能网站建设指南
  • 建站seo推广附近电脑平面设计培训班
  • 北京营销型网站公司本地电脑做视频网站 外网连接
  • 电子商务网站开发实训总结报告盐城市亭湖区城乡建设局网站
  • asp网站如何虚拟发布会用框架做网站能找到工作吗
  • wordpress禁止注册百度seo搜索
  • 榆树网站建设对网站建设的建议
  • 培训型网站建设方案网站设计流程步骤
  • 免费的php网站模板网站建设公司下载
  • 云畅网站建设nodejs和wordpress
  • 台州找人做网站wordpress升级快速
  • 网站建设征求意见的通知深入解析wordpress
  • 我要做个网站该怎么做百度小程序给网站做链接
  • 网站建设 课程 说明wordpress 去掉emoji
  • wordpress地址站点地址衡阳市住建局官方网站
  • 深圳企业网站制作企业百度小程序开发教程
  • 通用精品课程网站建设的需求分析wordpress年会员
  • 网站备案有什么用怎么做网站管理
  • 虚拟主机怎么建设网站网站功能设计指什么
  • wordpress做管理网站网站域名费怎么查询
  • 南通建设公司网站紧急通知网页升级记住我们
  • 网站快速收录教程个人音乐网站策划书范文
  • 住房和建设厅官方网站滨州网站建设求职简历
  • 电子商务网站设计代做有专业做网站优化的吗
  • 佛山如何建立网站土特产网站建设状况