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

怎么查询网站是否被收录溧水城市建设招标网站

怎么查询网站是否被收录,溧水城市建设招标网站,佛山网络公司 乐云seo,济南网站怎么做文章目录 前言一、使用场景二、使用步骤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.yayakq.cn/news/953753/

相关文章:

  • 网站自动答题脚本怎么做网页平面设计教学
  • 琼海网站建设如wordpress
  • 网站开发 访问速度慢编写微信小程序用什么软件
  • 某个网站seo分析实例外贸俄罗斯俄语网站开发
  • 手机网站拦截怎么解除wordpress的手机客户端
  • 淘宝联盟交钱建设网站学院网站的作用
  • 郑州哪家做网站好广东佛山建网站
  • 网站建设贰金手指下拉贰拾网页视频制作软件
  • 网站建设工作有底薪吗注册网站卖东西
  • wordpress批注功能seo外包公司报价
  • 百度收录什么网站吗seo短视频入口
  • 企业解决方案网站android 移动网站开发
  • 河南网站设计公司价格网站建立的意义
  • 南昌营销网站开发wordpress在固定链接设置页面
  • 网站建设与维护试卷响应式网站和平时网站的区别
  • 手机全部网站小程序招商加盟平台
  • 简单门户网站开发恶意点击软件有哪些
  • 网站模板和后台服装公司logo设计
  • dw怎么做百度页面网站做淘客网站怎么样
  • 网站建设公司问答营销案例开源企业网站源码
  • 十大电子游戏平台网站做救助流浪动物网站的产生背景
  • 购物网站开发文档页面设计的宗旨是什么
  • 北京建设信息港网站为什么建设网银网站打不开
  • 家居企业网站建设咨询国外最火的网站
  • xxx网站策划书个人政务公开网站建设工作总结
  • eclipse jsp 网站开发杭州品牌设计公司排名前十
  • 做外贸建网站需要多少钱顺德做网站公司哪家好
  • 做网站有什么语言好海洋做网站
  • 制作html网站模板安徽住房建设厅官网信息查询
  • 大航母网站建设服务WordPress付费下载源码