尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[豪の学习笔记] Spring框架学习碎碎念#5

[豪の学习笔记] Spring框架学习碎碎念#5
📅 发布时间:2026/6/19 15:56:16
主动获取Bean对象、Bean的作用域、第三方Bean管理

跟学视频:黑马JavaWeb课程

Bean管理

获取Bean

​ 默认情况下,SpringBoot项目在启动的时候会自动的创建IOC容器(也称为Spring容器),并且在启动的过程当中会自动的将bean对象都创建好,存放在IOC容器当中。应用程序在运行时需要依赖什么bean对象,就直接进行依赖注入就可以了

​ 在Spring容器中提供了一些方法,可以主动从IOC容器中获取到Bean对象

  • 根据name获取bean
Object getBean(String name)
  • 根据类型获取Bean
<T> T getBean(class<T> requiredType)
  • 根据name和类型获取Bean
<T> T getBean(String name, Class<T> requiredType)
@SpringBootTest
class SpringbootWebConfig2ApplicationTests {@Autowiredprivate ApplicationContext applicationContext; //IOC容器对象//获取bean对象@Testpublic void testGetBean(){//根据bean的名称获取DeptController bean1 = (DeptController) applicationContext.getBean("deptController");//根据bean的类型获取DeptController bean2 = applicationContext.getBean(DeptController.class);//根据bean的名称 及 类型获取DeptController bean3 = applicationContext.getBean("deptController", DeptController.class);}
}

Bean作用域

在Spring中支持五种作用域,后三种在web环境才生效:

作用域 说明
singleton 容器内同名称的bean只有一个实例(单例)(默认)
prototype 每次使用该bean时会创建新的实例(非单例)
request 每个请求范围内会创建新的实例(web环境中)
session 每个会话范围内会创建新的实例(web环境中)
application 每个应用范围内会创建新的实例(web环境中)

可以通过@Scope注解来进行配置作用域:

@Scope("prototype")
@RestController
@RequestMapping("/depts")
public class DeptController{}

注意事项:

  • 默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)
  • prototype的bean,每一次使用该bean的时候都会创建一个新的实例
  • 实际开发中,绝大部分的Bean是单例的,即绝大部分Bean不需要配置Scope属性

第三方Bean

​ 如果要管理的Bean对象来自第三方(不是自定义的),是无法用@Component及其衍生注解声明Bean的,就需要用到@Bean注解

​ 若要管理第三方Bean对象,建议对这些Bean进行集中分类配置,可以通过@Configuration注解声明一个配置类

@Configuration //配置类  (在配置类当中对第三方bean进行集中的配置管理)
public class CommonConfig {//声明第三方bean@Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean//通过@Bean注解的name/value属性指定bean名称, 如果未指定, 默认是方法名public SAXReader reader(DeptService deptService){System.out.println(deptService);return new SAXReader();}
}

​ 在方法上加上一个@Bean注解,Spring 容器在启动的时候,它会自动的调用这个方法,并将方法的返回值声明为Spring容器当中的Bean对象

注意事项:

  • 通过@Bean注解的name或value属性可以声明bean的名称,如果不指定,默认bean的名称就是方法名(一般不指定)
  • 如果第三方bean需要依赖其它bean对象,直接在bean定义方法中设置形参即可,容器会根据类型自动装配

相关新闻

  • LucaOne模型的词汇表系统
  • 2025 年终端数据安全软件公司推荐数篷科技(深圳)有限公司,数据安全领域的坚实力量
  • 网络协议工程 - eNSP及相关软件安装 - [eNSP, VirtualBox, WinPcap, Wireshark, Win7] - 教程

最新新闻

  • 有据可查!南宁黄金回收公信力榜单出炉,变现直接对照选店 - 沉迷学习28
  • 离婚财产分割律所:5家精通复杂资产分割的团队评测 - 品牌2026
  • 如何用OandBackup打造你的安卓数据安全堡垒?终极备份解决方案深度解析
  • 同样一款香奈儿,武汉回收店差价巨大?揭秘行业压价底层套路 - 奢侈品交易观察员
  • 如何在React中快速实现复制到剪贴板功能:终极react-copy-to-clipboard完整指南
  • 长沙手表回收高价变现技巧2026:5个核心方法+靠谱机构推荐 - 逸程

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号