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

Spring——自动装配Bean

· 自动装配是Spring满足bean依赖的一种方式

· Spring会在上下文中自动寻找,并自动给bean装配属性


在Spring中有三种装配的方式:

1. 在xml中显示配置

2. 在java中显示配置

3. 隐式的自动装配bean【重要】


测试

记得创建Cat、Dog、People类

public class MyTest {@Testpublic void test1(){ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");People people = context.getBean("people", People.class);people.getDog().shout();people.getCat().shout();}
}

ByName自动装配

    <!--byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid--><bean id="people" class="com.yang.pojo.People" autowire="byName"><property name="name" value="辰阳"/></bean>

ByType自动装配

    <bean class="com.yang.pojo.Cat"/><bean class="com.yang.pojo.Dog"/><!--byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(必须保证类型全局唯一,如有两个狗就会报错)(可以省略id)--><bean id="people" class="com.yang.pojo.People" autowire="byType"><property name="name" value="辰阳"/></bean>

小结:

·  byname时,需要保证所有的bean的id唯一,并且这个bean需要和自动注入的属性的set方法的值一致

·  bytype时,需要保证所有的bean的class唯一,并且这个bean需要和自动注入的属性的类型一致

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 编程语言一般学几种语言:探索编程语言的广度与深度
  • 商家为何疯狂送钱?用户如何省钱?一篇文章带你了解!
  • Qt图形编辑类使用总结
  • # 数仓建模:如何构建主题宽表模型?
  • 2.4G芯片开发的遥控玩具方案介绍 东莞酷得
  • Ubuntu中sqlite的使用方法
  • vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)
  • Vue3 + Vite项目使用SVG图片
  • OLED柔性显示屏的金线封装胶
  • 【开源合规】开源许可证风险场景详细解读
  • 响应式设计的双璧:WebKit 支持 CSS Flexbox 和 Grid 布局深度解析
  • 强引用?软引用?弱引用?虚引用?一文带你彻底搞懂!!
  • 演唱会售票系统(Springboot+MySQL+Mybatis+BootStrap)
  • flask使用定时任务flask_apscheduler(APScheduler)
  • vue3解决报错:ResizeObserver loop completed with undelivered notifications
  • echarts的各种常用效果展示
  • egg(89)--egg之redis的发布和订阅
  • JAVA之继承和多态
  • js ES6 求数组的交集,并集,还有差集
  • js 实现textarea输入字数提示
  • Phpstorm怎样批量删除空行?
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue小说阅读器(仿追书神器)
  • Webpack 4 学习01(基础配置)
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 彻底搞懂浏览器Event-loop
  • 从零开始学习部署
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 搞机器学习要哪些技能
  • 蓝海存储开关机注意事项总结
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 新版博客前端前瞻
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Linux(Source Insight安装及工程建立)
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (7)svelte 教程: Props(属性)
  • (floyd+补集) poj 3275
  • (六)vue-router+UI组件库
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三)uboot源码分析
  • (四)JPA - JQPL 实现增删改查
  • (源码分析)springsecurity认证授权
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .Net8 Blazor 尝鲜
  • .net打印*三角形