Spring手动获取bean对象

news2025/7/16 21:22:53

一,三种获取方式(获取单例bean对象)

默认情况下Spring项目启动时会把bean都创建好放在IOC容器中,如果想要主动获取这些bean对象

  1. 根据name获取bean

    Object getBean(String name)
  2. 根据类型获取bean

    <T> T getBean(Class<T> requiredType)
  3. 根据name获取bean(带类型转换)

    <T> T getBean(String name, Class<T> requiredType)

要从IOC容器当中来获取到bean对象,需要先拿到IOC容器对象,怎么样才能拿到IOC容器呢?

1,先通过Autowired获取IOC容器对象

@Autowired
    private ApplicationContext applicationContext;  //获取IOC容器对象

2,然后通过IOC容器对象ApplicationContext对象获取对应的IOC容器对象

//根据bean名称获取        获取完成后会报错,然后我们强转为studentController对象
        StudnetController bean1 = (StudnetController) applicationContext.getBean("studnetController");
        System.out.println(bean1);

        //根据类型获取bean对象
        StudnetController bean2 = applicationContext.getBean(StudnetController.class);
        System.out.println(bean2);

        //根据bean的名称和对象获取
        StudnetController bean3 = applicationContext.getBean("studnetController",StudnetController.class);
        System.out.println(bean3);

二,bean的作用域

1, 配置作用域

作用域说明
singleton容器内同名称的bean只有一个实例(单例)(默认)
prototype每次使用该bean时会创建新的实例(非单例)
通过在对应的类对象上加上@Scope 注解来配置作用域

三,第三方Bean管理

PS: 很多依赖中需要我们反复实例化对象,但是他们的类文件又是只读的我们无法在上面加上@Component对现象,所以我们就要用到

 1,在启动类上添加@Bean标识的方法(不建议)

@SpringBootApplication
public class SpringbootWebConfig2Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootWebConfig2Application.class, args);
    }

    //声明第三方bean
    @Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean
    public SAXReader saxReader(){
        return new SAXReader();
    }
}

2,创建一个配置类在配置类中定义@Bean标识的方法

@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();
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易点天下受邀参与云栖大会,以AIGC重塑出海营销新范式

10月31日&#xff0c;2023云栖大会在杭州云栖小镇拉开帷幕。与往年不同&#xff0c;今年的云栖大会以“计算&#xff0c;为了无法计算的价值”为主题&#xff0c;与国际潮流科技大会组织方式接轨&#xff0c;通过云计算、人工智能、产业创新三大主题馆40000平科技展&#xff0c…

双十一电视机顶盒哪个牌子好?经销商盘点线下热销网络电视机顶盒排名

电视机顶盒的功能非常丰富&#xff0c;日常的使用频率很高&#xff0c;而我作为数码经销商&#xff0c;电视机顶盒是主营产品之一&#xff0c;双十一是每年的购物狂欢&#xff0c;很多新手们咨询我电视机顶盒哪个牌子好想在双十一价格优惠时入手&#xff0c;今天我来盘一盘目前…

视觉霸主SAM和文图霸主CLIP强强联合!苹果联合UIUC,发布统一视觉模型SAM-CLIP,或掀起多模态新浪潮

作者 | ZenMoore 相信大家对 SAM[1] 并不陌生&#xff0c;它是 Meta 此前发布的 Segment Anything Model (分割一切模型)。一经发布便火遍全网震惊世界&#xff0c;史称“视觉领域的 ChatGPT 时刻”。 大模型研究测试传送门 GPT-4传送门&#xff08;免墙&#xff0c;可直接测…

【Cargo Therapeutics】申请1亿美元纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;美国生物制药公司【Cargo Therapeutics】近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为(CRGX),Cargo Therapeutics…

大厂面试题-什么是服务网格?

概述 服务网格这个概念出来很久了&#xff0c;从2017年被提出来&#xff0c;到2018年正式爆发&#xff0c;很多云厂商和互联网企业都在纷纷向服务网格靠拢。像蚂蚁集团、美团、百度、网易等一线互联网公司&#xff0c;都有服务网格的落地应用。 服务网格是微服务架构的更进一…

借助AxProtector CTP,软件更能坚守抗盗版和逆向工程阵地

威步的软件保护机制采用了先进的混淆技术。 最新的编译时保护技术利用LLVM编译器框架&#xff0c;以实现高效的保护目标。 AxProtector CTP确保应用程序的安全性&#xff0c;同时符合特定平台的指导原则&#xff0c;无需运行时代码修改。 最近的CodeMeter保护套件更新已支持…

LeetCode----42. 接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height = [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝…

vue-安装Vue开发者工具

极简插件&#xff1a;下载->开发者模式->拖曳安装->插件详情允许访问文件 网址&#xff1a;https://chrome.zzzmh.cn/index 搜索Vue Devtools 下载下来的安装包先解压 然后点击chrome浏览器的右上角三个点的按钮在里面找到扩展程序这个选项&#xff0c;然后点进去管理…

智力测试情商测试小程序源码/带流量主提升智力微信小程序源码

智力测试情商测试小程序源码&#xff0c;这是一个考验智力&#xff0c;心理上面的一个测试游戏&#xff0c;支持多种测试方法。 比如有: 智商测试丨情商测试 | 性格测试丨爱情测试 | 抑郁症测试丨焦虑症测试 | 心理压力测试丨生活满意度测试&#xff0c;通过不同的测试&#xf…

环境变量(图文详解)

Linux中的环境变量&#xff08;图文详解&#xff09; 1. 基本概念2. 常见环境变量PATH : 指定命令的搜索路径HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)SHELL : 当前Shell,它的值通常是/bin/bash 3. 查看环境变量方法4. 测试PATH5. HOME6. 和环境变量…

每日一练 | 华为认证真题练习Day124

1、OSPFv3使用哪个区域号标识骨干区域&#xff1f; A. 0 B. 3 C. 1 D. 2 2、某路由器OSPFv3邻接关系如下&#xff0c;则本路由器是ABR。 A. 对 B. 错 3、IPv6地址中不包括下面哪种类型的地址&#xff1f; A. 任播地址 B. 广播地址 C. 组播地址 D. 单播地址 4、如果一个…

中国人民大学与加拿大女王大学金融硕士项目——在繁忙的工作之余,坚持自我增值

’在这个快节奏的时代&#xff0c;我们常常被繁忙的工作和生活所牵绊&#xff0c;很难找到时间和精力去实现自己的梦想和追求。然而&#xff0c;我们不能让这些琐事成为我们前进道路上的障碍&#xff0c;应该在繁忙的工作之余&#xff0c;坚持自我增值。作为金融行业的专业人士…

linux下的程序环境和预处理(gcc演示)

1. 程序的翻译环境和执行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境&#xff0c;它用于实际执行代码。 2. 详解编译链接 2.1 翻译环境 组成一个程序的…

【深度学习】pytorch——实现CIFAR-10数据集的分类

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 往期文章&#xff1a; 【深度学习】pytorch——快速入门 CIFAR-10分类 CIFAR-10简介CIFAR-10数据集分类实现步骤一、数据加载及预处理实现数据加载及预处理归一化的理解访问数据集Dataset对象Dataloader对象 二、…

GWAS软件:GEMMA的安装和使用教程

GCTA和GEMMA是GWAS分析中应用最广泛的两款软件&#xff0c;GCTA可以在​Windows电脑下运行&#xff0c;而GEMMA软件只有Linux和Mac系统&#xff0c;这里介绍一下如何在Linux系统中安装GEMMA软件。 ​ 1. GEMMA名字来源 GEMMA名称来源&#xff1a; G&#xff1a; Genome-wid…

万字图文详细指导一步一步训练模型实现换-·脸,基于DeepFaceLab最新的DeepFakes实现视频换-·脸和直播换-·脸(全套资料免费下载)

万字图文详细指导一步一步训练模型实现换-脸,基于DeepFaceLab最新的DeepFakes实现视频换-脸和直播换-脸(全套资料免费下载)。 DeepFaceLab3:软硬件以及系统要求: DeepFaceLab3:软硬件以及系统要求By tony DeepFaceLab 0 Comments 5929,898 views。这段时间DeepFaceLab也…

HackTheBox-Starting Point--Tier 1---Tactics

文章目录 一 题目二 实验过程三 Psexec工具使用 一 题目 Tags Network、Protocols、SMB、Reconnaissance、Misconfiguration译文&#xff1a;网络、协议、中小企业、侦察、配置错误Connect To attack the target machine, you must be on the same network.Connect to the S…

表格没值显示 —

<el-table-columnprop"turnoverType"label"流水方式"align"center"><template slot-scope"scope"><!-- <span v-if"scope.row.turnoverType 1">全佣</span><span v-if"scope.row.turno…

Python---字符串输入和输出---input()、格式化输出:%,f形式,format形式

字符串输入: 在Python代码中&#xff0c;我们可以使用input()方法来接收用户的输入信息。记住&#xff1a;在Python中&#xff0c;input()方法返回的结果是一个字符串类型的数据。 如果之后使用输入的数据&#xff0c;一定要记得利用数据类型转换。 相关链接&#xff1a;Pyt…

mysql之基础语句

数据库的列类型 int&#xff1a;整型 用于定义整数类型的数据 float&#xff1a;单精度浮点4字节32位 准确表示到小数点后六位 double&#xff1a;双精度浮点8字节64位 char&#xff1a;固定长度的字符类 用于定义字符类型数据&…