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

山东安康建设项目管理有限公司网站打广告推广怎么做

山东安康建设项目管理有限公司网站,打广告推广怎么做,在家没事做建什么网站好,上海网站建设哪家技术好文章目录 前言一、使用场景二、使用步骤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://www.khdw.cn/news/71118.html

相关文章:

  • 可以推广发广告的appseo公司彼亿营销
  • 沧州网站设计优秀软文范例800字
  • 个人网站企业网站怎么制作链接网页
  • 襄阳企业网站建设短视频推广
  • 云相册网站怎么做的站长工具网站测速
  • vs2010做网站seo诊断分析
  • 什么是网站快照免费发帖推广网站
  • 孟村县做网站价格新品牌推广方案
  • 一个网站要怎么做的吗网络推广产品要给多少钱
  • 建一个营销网站多少钱百度seo课程
  • 挂别人公司做网站可以吗企业网站建设推广
  • 如何做单网页网站正规电商培训学校排名
  • 广州百度seo代理优化网站排名推广
  • 茶叶网站flash模板网络推广是做什么的
  • 做视频点播网站需要服务器存储吗什么叫外链
  • 网站建设外包给外企长春seo整站优化
  • 做网站流行的冯耀宗seo视频教程
  • 合肥市蜀山区做个网站多少钱营销型网站更受用户欢迎的原因是
  • 网站怎么做运营推广杭州seo优化公司
  • 山西中小学网站建设免费网页代码大全
  • jsp网站开发心得软文500字范文
  • 关于手机电子商务网站建设线上推广费用预算
  • 如何建设手机网站厦门网站建设
  • 做网站有发票吗十个有创意的线上活动
  • 移动网站开发工具高级seo
  • 旅游网站开发公司营销案例分析报告模板
  • 城管网站内容建设方案百度小程序怎么进入
  • 网站制作应该选什么搜索引擎登录入口
  • 企业网站优化推广公司seo整站优化服务
  • 凡科网站代理登录入口百度自然搜索排名优化