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

料远若近网站建设关键词优化简易

料远若近网站建设,关键词优化简易,wordpress分享到+滑动,秦皇岛网站建设公司自定义bean加载到spring容器中的两种方式: 1.在类上添加注解Controller、RestController(本质是Controller)、Service、Repository、Component2.使用Configuration和Bean 这篇文章主要介绍第二种方式原理(因为在实际使用中&#…

自定义bean加载到spring容器中的两种方式:

  • 1.在类上添加注解@Controller@RestController(本质是@Controller)、@Service@Repository@Component
  • 2.使用@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注解中basePackageClassesbasePackagesvalue的值,则从@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/296053/

相关文章:

  • 付费网站推广网站优化包括哪些内容
  • 在日本做色情网站广州seo外包
  • 最棒的网站建设考研最靠谱的培训机构
  • 广州建设企业网站黑河seo
  • 招商网站建设性价比高seo排名优化的
  • 产品网站怎么做的长沙正规关键词优化价格从优
  • 怎样查询江西省城乡建设厅网站杭州seo网
  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站
  • 长沙市在建工程项目免费seo快速排名工具
  • 南宁定制网站制作电话图片外链生成工具
  • 哪些网站做的海报比较高大上百度客服电话是多少
  • 菏泽网站建设电话常州seo外包
  • 做木皮的网站裂变营销五种模式十六种方法
  • 精美 企业网站模板微信软文推广怎么做
  • 怎么建立一个网站里面可以查询资料百度权重域名
  • 网站建设顺序镇江交叉口优化
  • 低价企业网站搭建软文新闻发布网站
  • 创造与魔法官方网站做自己喜欢的事seo视频
  • 淘宝联盟推广网站怎么做吉安seo招聘
  • 工程招聘网站如何免费制作自己的网站
  • 网站建设调研问卷搜易网托管模式的特点
  • 在哪个网站可以做java面试题宁德市蕉城区疫情
  • 2021年重大新闻事件seo快速工具
  • 拼多多网店南宁优化推广服务
  • 洛阳建筑公司排名长沙官网seo服务
  • 网站关键词优化公司哪家好企业网站seo点击软件
  • 做网站有必要?优化师培训