提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言`
    • 我们在开发过程中,往往会碰到服务面向不同的应用场景的情况,需要根据配置进行bean的注入,以此来增加服务的灵活性;
  • 一、注解ConditionalOnProperty
  • 二、使用步骤
    • 1.自定义配置项
    • 2.读入数据
  • 总结

前言`

我们在开发过程中,往往会碰到服务面向不同的应用场景的情况,需要根据配置进行bean的注入,以此来增加服务的灵活性;

提示:以下是本篇文章正文内容,下面案例可供参考

一、注解ConditionalOnProperty

springboot中常用注入属性有@Autowired和@Resource,其中还有@ConditionalOnProperty也能进行属性注入,且能根据配置文件来进行注入;

二、使用步骤

1.自定义配置项

配置项如下(示例):可任意定义

myService=service1

2.读入数据

代码如下(示例):

package com.zlp.controller;import com.zlp.service.MyService;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;@RestController
public class TestConditionalOnProperty {/*** 此处使用@Resource进行注入**/@Resourceprivate MyService myService;@GetMapping("/test")public void test(){myService.test();}}

MyServiceImpl 类:

package com.zlp.service.impl;import com.atssg.service.MyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;@Component
@ConditionalOnProperty(name = "myService",havingValue = "service1")
@Slf4j
public class MyServiceImpl implements MyService {@Overridepublic void test() {log.info("I am Myservice1");}
}

MyServiceImpl2 类:

package com.zlp.service.impl;import com.zlp.service.MyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Component;@Component
@ConditionalOnProperty(name = "myService",havingValue = "service2")
@Slf4j
public class MyServiceImpl2 implements MyService {@Overridepublic void test() {log.info("I am MyServiceImpl2");}
}

调用接口后,控制台打印:

I am Myservice1

总结

@ConditionalOnProperty 中name,havingValue属性 与 配置文件中的定义属性,如“myService=service1” ,能够对应上,那么springboot将会把对应的bean进行注入;

springboot:根据不同配置注入不同实现的bean相关推荐

  1. SpringBoot配置文件YAML配置注入(详解)

    目录 一.SpringBoot配置文件 1. SpringBoot默认配置文件 2. 配置文件的作用 3. 配置文件的位置 4. 多环境切换 方式一:多配置文件 方式二:一个配置文件(yaml的多文档 ...

  2. SpringBoot:yaml配置注入bean

    SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的. 有分成application.properties和application.yml两种结构,这两种结构: application ...

  3. 3-8 基于SpringBoot连接数据库与配置MyBatis实操 创建表sql

    11                    13-8 基于SpringBoot连接数据库与配置MyBatis实操 springSecurity提供了     现成的基于内存管理的类 shiro则必须自 ...

  4. SpringBoot约定大于配置的特性解读 SpringBoot快速入门

    SpringBoot约定大于配置 Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系.随着Spring 3.0的 ...

  5. SpringBoot项目实现配置实时刷新功能

    需求描述:在SpringBoot项目中,一般业务配置都是写死在配置文件中的,如果某个业务配置想修改,就得重启项目.这在生产环境是不被允许的,这就需要通过技术手段做到配置变更后即使生效.下面就来看一下怎 ...

  6. SpringBoot拦截器配置

    SpringBoot拦截器配置 自定义拦截器: com.example.mybatis2018.interceptor.MyInterCeptor package com.example.mybati ...

  7. springboot 使用mybatis-plus 配置乐观锁。

    -----------------------------官方文档已更新,详细配置请访问:mybatis plus乐观锁插件 进行查看--------------------------------- ...

  8. Springboot 使用JPA Repository 注入失败问题

    报错如下: APPLICATION FAILED TO START ***************************Description:Field customerRepository in ...

  9. SpringBoot 之数据源配置

    文章目录 市面上的几种数据源比对 SpringBoot自动装配DataSource原理 HiKariCP 数据源配置 Druid 数据源配置 SpringBoot集成Druid连接池 Druid 多数 ...

最新文章

  1. vue常见错误汇总(自看)
  2. IDC公布2017年亚太地区数据中心10大预测
  3. 进程process与线程thread
  4. WindowsPhone7入手,实在的照片
  5. JSP_include指令和lt;jsp:includegt;
  6. python上下文管理器
  7. vs五子棋c语言代码,五子棋代码C语言版.doc
  8. 「Python」pycharm多项目虚拟环境切换
  9. VC++动态链接库编程之MFC DLL
  10. pandas: DataFrame在数据处理时一些常用的操作汇总
  11. c语言通过什么传递参数 寄存器,关于使用寄存器传参解决方法
  12. 26秒!全球销量第一的AI音箱就被腾讯黑掉了,然后变身窃听器
  13. CSS最基础的语法和三种引入方式
  14. 雷电模拟器修改本地IP
  15. 《计算机网络》在物理层和数据链路层扩展以太网
  16. 图像风格化——感知损失(perceptual loss)(2016)
  17. 利用Madmom识别和弦
  18. 中国人寿保费项目数据集
  19. 阿里云2023届实习生招聘启动啦,快来加入IoT安全吧
  20. 后台页面-制作铃铛带数字消息提示样式

热门文章

  1. 柳传志:我尊称马云是“马校长”,为湖畔大学正名
  2. 国家电网公司跨区电网直流工程成套设计工作管理办法》
  3. 图像噪声-椒盐噪声高斯噪声(待补充)
  4. CUDA 学习笔记 —— (九)Stream详解
  5. 企业怎样做好网络营销中的论坛营销
  6. 计算机辅助翻译翻译技术的译前应用,计算机辅助翻译技术在应用型英语教学中的运用...
  7. 计算机管理无法关闭,任务管理器无法关闭卡死的程序进程该怎么办?
  8. 求购ODA源码 拿来学习,谢谢
  9. 手机开发实战163——视频介绍
  10. 细谈Struts2 详解