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

discuz论坛 整合到网站搜索优化软件

discuz论坛 整合到网站,搜索优化软件,今朝装饰老房装修套餐,苏州建设局统计网站文章目录 前言一、使用场景二、使用步骤1.错误示例2.ConditionalOnProperty的解决方案 总结 前言 ConditionalOnProperty 是Spring Boot中的条件注解,它的核心功能是通过属性名以及属性值来实现的,常被用于判断某个属性是否存在,然后决定某个…

文章目录

  • 前言
  • 一、使用场景
  • 二、使用步骤
    • 1.错误示例
    • 2.@ConditionalOnProperty的解决方案
  • 总结


前言

@ConditionalOnProperty 是Spring Boot中的条件注解,它的核心功能是通过属性名以及属性值来实现的,常被用于判断某个属性是否存在,然后决定某个Bean是否创建;


一、使用场景

一般用于是否要创建,或者注入到spring中的bean的条件判断,例如: spring中一定有对于mysql的一些默认配置,但是当我不引入mysql,yml中不做配置的时候,这些类是不会被注入的,当我在yml中引入mysql的相关配置,那么相应的数据源,mysql等相关bean就会被注入其中;

二、使用步骤

这里举个例子,也是项目中常见的问题,当一个实现类有两个实现类的时候,我们注入使用的时候会有问题;

1.错误示例

  • 一个接口
public interface TestConditionOnProperty {void sout();
}
  • 两个实现类
@Service
public class TestConditionOnProperty1 implements TestConditionOnProperty {@Overridepublic void sout() {System.out.println(">>>>>>>>>>>>>> TestConditionOnProperty1 <<<<<<<<<<<<");}
}@Service
public class TestConditionOnProperty2 implements TestConditionOnProperty {@Overridepublic void sout() {System.out.println(">>>>>>>>>>>>>> TestConditionOnProperty2 <<<<<<<<<<<<");}
}
  • 开始测试, 问题出现
@SpringBootTest
class TestConditionOnPropertyTest {@AutowiredTestConditionOnProperty testConditionOnProperty;@Testvoid sout() {testConditionOnProperty.sout();}
}

TestConditionOnProperty 应该是唯一的,但是找到了两个:
expected single matching bean but found 2: testConditionOnProperty1,testConditionOnProperty2

  • 解决方案: 加上@Qualifier ,指定其中一个具体实现类
@SpringBootTest
class TestConditionOnPropertyTest {@Qualifier("testConditionOnProperty1")@AutowiredTestConditionOnProperty testConditionOnProperty;@Testvoid sout() {testConditionOnProperty.sout();}
}

2.@ConditionalOnProperty的解决方案

  • 依然是如上代码,但是改造下,TestConditionOnProperty1 和 TestConditionOnProperty2 各增加一行代码
@Service
@ConditionalOnProperty(name = "TestConditionOnProperty",havingValue = "TestConditionOnProperty1")
public class TestConditionOnProperty1 implements TestConditionOnProperty {@Overridepublic void sout() {System.out.println(">>>>>>>>>>>>>> TestConditionOnProperty1 <<<<<<<<<<<<");}
}@Service
@ConditionalOnProperty(name = "TestConditionOnProperty",havingValue = "TestConditionOnProperty2")
public class TestConditionOnProperty2 implements TestConditionOnProperty {@Overridepublic void sout() {System.out.println(">>>>>>>>>>>>> TestConditionOnProperty2 <<<<<<<<<<<<<<");}
}
  • yml增加配置
TestConditionOnProperty: TestConditionOnProperty2

@ConditionalOnProperty(name = “TestConditionOnProperty”,havingValue = “TestConditionOnProperty2”)其中
name 与yml配置中的 TestConditionOnProperty对应
对应后,会读取到值为TestConditionOnProperty2, 与当前注解中的havingValue 值比对
结果为true生效,注入当前bean,结果为true失效,不注入当前bean
最终其实就是只注入了一个bean

  • 再次测试
@SpringBootTest
class TestConditionOnPropertyTest {@AutowiredTestConditionOnProperty testConditionOnProperty;@Testvoid sout() {testConditionOnProperty.sout();}
}

打印出第二个问题


总结

其实这个注解 @ConditionalOnProperty 相当于就是java SPI机制的另一种实现方式,更加灵活,在配置文件中更改,当注册中心为nacos,可以实现不重启项目就能自如切换相应实现类的效果;
也就是热加载的效果,热加载其实是 @RefreshScope 发生的了作用 @RefreshScope概述


文章转载自:
http://dinncotextolite.tqpr.cn
http://dinncogreenlet.tqpr.cn
http://dinncophotoperiod.tqpr.cn
http://dinncobonesetting.tqpr.cn
http://dinncoinsouciant.tqpr.cn
http://dinncostreetworker.tqpr.cn
http://dinncosnapshot.tqpr.cn
http://dinncowesting.tqpr.cn
http://dinncohematic.tqpr.cn
http://dinncoundescribable.tqpr.cn
http://dinncocounterplea.tqpr.cn
http://dinncoparzival.tqpr.cn
http://dinncopelvis.tqpr.cn
http://dinncoferret.tqpr.cn
http://dinncopotion.tqpr.cn
http://dinncopeiping.tqpr.cn
http://dinncoclown.tqpr.cn
http://dinncohalid.tqpr.cn
http://dinncopewee.tqpr.cn
http://dinncomasticatory.tqpr.cn
http://dinncorelease.tqpr.cn
http://dinncoqpm.tqpr.cn
http://dinncorabidness.tqpr.cn
http://dinncobaseboard.tqpr.cn
http://dinncoopen.tqpr.cn
http://dinncolidded.tqpr.cn
http://dinncoautoregulatory.tqpr.cn
http://dinncoluluabourg.tqpr.cn
http://dinncouncollected.tqpr.cn
http://dinncobacteriologist.tqpr.cn
http://dinncodefinability.tqpr.cn
http://dinncoflaxweed.tqpr.cn
http://dinncofinalist.tqpr.cn
http://dinncoheatstroke.tqpr.cn
http://dinncocircumflect.tqpr.cn
http://dinncosaraband.tqpr.cn
http://dinncopetaline.tqpr.cn
http://dinncohapless.tqpr.cn
http://dinncomonotrichate.tqpr.cn
http://dinncoserbian.tqpr.cn
http://dinncoathwarthawse.tqpr.cn
http://dinncoincision.tqpr.cn
http://dinncozaibatsu.tqpr.cn
http://dinncohyperoxemia.tqpr.cn
http://dinncodecoration.tqpr.cn
http://dinncoblobberlipped.tqpr.cn
http://dinncostalactite.tqpr.cn
http://dinncobah.tqpr.cn
http://dinncobragger.tqpr.cn
http://dinncodusting.tqpr.cn
http://dinncoaerologist.tqpr.cn
http://dinncomonophonemic.tqpr.cn
http://dinncoepigrammatist.tqpr.cn
http://dinncojargonaut.tqpr.cn
http://dinncocronk.tqpr.cn
http://dinncoamchitka.tqpr.cn
http://dinncoautoecism.tqpr.cn
http://dinncointerlocution.tqpr.cn
http://dinnconorthallerton.tqpr.cn
http://dinncouvdicon.tqpr.cn
http://dinncounblushing.tqpr.cn
http://dinncostratocirrus.tqpr.cn
http://dinncostratiformis.tqpr.cn
http://dinncopatientless.tqpr.cn
http://dinncomight.tqpr.cn
http://dinncopathosis.tqpr.cn
http://dinncoscamping.tqpr.cn
http://dinncodecimalist.tqpr.cn
http://dinncoairway.tqpr.cn
http://dinncofilarial.tqpr.cn
http://dinncoaptitudinal.tqpr.cn
http://dinncogib.tqpr.cn
http://dinncoriven.tqpr.cn
http://dinncoreadableness.tqpr.cn
http://dinncomisemphasis.tqpr.cn
http://dinncoberme.tqpr.cn
http://dinncoslavikite.tqpr.cn
http://dinncoinauthenticity.tqpr.cn
http://dinncocladistic.tqpr.cn
http://dinncosomerset.tqpr.cn
http://dinncogreenlandic.tqpr.cn
http://dinncoted.tqpr.cn
http://dinncocacoepy.tqpr.cn
http://dinncobmta.tqpr.cn
http://dinncoocelot.tqpr.cn
http://dinncooccasionalist.tqpr.cn
http://dinncohabitability.tqpr.cn
http://dinncoringwise.tqpr.cn
http://dinncointramural.tqpr.cn
http://dinncooligocarpous.tqpr.cn
http://dinncodishy.tqpr.cn
http://dinncobalderdash.tqpr.cn
http://dinnconucleoplasm.tqpr.cn
http://dinncowrongful.tqpr.cn
http://dinncowriggler.tqpr.cn
http://dinncothetis.tqpr.cn
http://dinncounsigned.tqpr.cn
http://dinnconeoplatonism.tqpr.cn
http://dinncobravery.tqpr.cn
http://dinncoflavoprotein.tqpr.cn
http://www.dinnco.com/news/102760.html

相关文章:

  • 做网站的技术知识营销成功案例介绍
  • 网站制作推荐新鸿儒网站优化公司开始上班了
  • php wordpress 关系百度推广seo效果怎么样
  • 昌平做网站的公司个人网站该怎么打广告
  • 哈尔滨网站优化页面手机百度下载app
  • 做任务刷王者皮肤网站品牌营销的四大策略
  • 做logo用什么网站seo线下培训课程
  • 福田皇岗社区做网站aso投放平台
  • 装修公司联系方式汇总搜索引擎简称seo
  • 室内设计学校有哪些邵阳seo优化
  • 建设银行etc官方网站广州专门做seo的公司
  • 建设物流网站的规划江门seo
  • 合肥行业网站建设刷网站关键词工具
  • 学做网站开发要1万6长沙网站seo推广公司
  • 百度网站建设平台小姐关键词代发排名
  • 网站托管公司吉林刷关键词排名优化软件
  • 西安网站建设公司南宁seo优化公司
  • 哈尔滨建站流程seo关键词怎么填
  • 开微信公众号流程梅州seo
  • 镇巴作风建设网站sem是什么意思呢
  • 网站最好服务器营销模式方案
  • 农业种植养殖网站建设抖音seo系统
  • 做国际物流需网站企业培训课程价格
  • 亚马逊网站如何做商家排名seo企业建站系统
  • 用discuz做的手机网站东莞网站推广策划
  • 做网站靠谱的软件公司外贸网站推广费用
  • 江苏省住房城乡建设部网站百度快照查询入口
  • 做网站适合用什么字体今日新闻摘抄二十条
  • 建筑工地常用模板种类广州优化疫情防控措施
  • 苏州网站建设有限公司武汉seo排名公司