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

bean依赖属性配置

bean依赖属性配置

文章目录

  • bean依赖属性配置

在这里插入图片描述

@Data
@ConfigurationProperties(prefix = "cartoon")
public class CartoonProperties {private Cat cat;private  Mouse mouse;
}

在这里插入图片描述

cartoon:cat:name: whatage: 5mouse:name: howage: 6

在这里插入图片描述
这样的话,业务bean无需在读取配置文件的操作了。

在这里插入图片描述EnableConfigurationProperties来设置关联,在使用时加载bean,不用时不加载

@EnableConfigurationProperties(CartoonProperties.class)//关联注解 强制设置哪一个类成为bean
@Data
public class CartoonCatAndMouse {private Cat cat;private  Mouse mouse;@Autowiredprivate CartoonProperties cartoonProperties;public CartoonCatAndMouse(CartoonProperties cartoonProperties){this.cartoonProperties = cartoonProperties;cat = new Cat();cat.setName(cartoonProperties.getCat()!=null && StringUtils.hasText(cartoonProperties.getCat().getName())?cartoonProperties.getCat().getName():"tom");cat.setAge(cartoonProperties.getCat()!=null && cartoonProperties.getCat().getAge()!=null ?cartoonProperties.getCat().getAge():3);mouse = new Mouse();mouse.setName(cartoonProperties.getMouse()!=null && StringUtils.hasText(cartoonProperties.getMouse().getName())?cartoonProperties.getMouse().getName():"jerry");mouse.setAge(cartoonProperties.getMouse()!=null && cartoonProperties.getMouse().getAge()!=null ?cartoonProperties.getMouse().getAge():4);}public void play(){System.out.println(cat.getAge() + "岁的"+cat.getName()+ "和"+ mouse.getAge()  + "岁的" + mouse.getName() + "打起来了");}
}

也可以把业务类的@Component注解取消
启动时,添加注解@Import(CartoonCatAndMouse.class),根据需要来配置bean

@SpringBootApplication
@Import(CartoonCatAndMouse.class)
public class Springboot29BeanPropertiesApplication {public static void main(String[] args) {ConfigurableApplicationContext ctx = SpringApplication.run(Springboot29BeanPropertiesApplication.class, args);CartoonCatAndMouse bean = ctx.getBean(CartoonCatAndMouse.class);bean.play();}}

在这里插入图片描述

视频链接:
https://www.bilibili.com/video/BV15b4y1a7yG/?p=155&spm_id_from=pageDriver&vd_source=f6debc5a79e3f424f9dde2f13891b158

相关文章:

  • [最优化理论] 梯度下降法 + 精确线搜索(单峰区间搜索 + 黄金分割)C++ 代码
  • 软件工程 - 第8章 面向对象建模 - 2 静态建模
  • 08_Collection集合2
  • 关于我离破500粉丝感受
  • Vue3中reactive和ref对比
  • 二叉树的基本操作实现包括创建二叉树、插入节点、搜索节点、删除节点、遍历二叉树等详解
  • Python安装步骤介绍
  • 【无标题】心灯
  • 【Redis】Redis缓存使用问题
  • 基于springboot实现的垃圾分类管理系统
  • Linux(13):例行性工作排程
  • 带头双向循环链表:一种高效的数据结构
  • 自动化横行时代,手工测试如何突破重围?测试之路...
  • 第一章 Windows环境下的JDK安装与环境配置
  • 【c】角谷猜想
  • Javascript基础之Array数组API
  • Java教程_软件开发基础
  • magento 货币换算
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python 反序列化安全问题(二)
  • vue脚手架vue-cli
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 免费小说阅读小程序
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 网页视频流m3u8/ts视频下载
  • 一份游戏开发学习路线
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # 飞书APP集成平台-数字化落地
  • # 数据结构
  • #1015 : KMP算法
  • #数学建模# 线性规划问题的Matlab求解
  • (+4)2.2UML建模图
  • (3)nginx 配置(nginx.conf)
  • (9)目标检测_SSD的原理
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [Android] Upload package to device fails #2720
  • [Angular] 笔记 18:Angular Router
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [C#]DataTable常用操作总结【转】
  • [c#基础]DataTable的Select方法
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本
  • [HDU3710]Battle over Cities
  • [Java]深入剖析常见排序
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [LeetCode] Minimum Path Sum
  • [NOI2012]迷失游乐园