前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spring装配Bean

Spring装配Bean

作者头像
崔笑颜
发布于 2020-07-03 07:27:04
发布于 2020-07-03 07:27:04
4670
举报

1 依赖注入的方式(3类4种) 1.1 依赖注入 依赖注入DI是指程序运行过程中,若需要调用另一个对象协助时,无需在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序.依赖注入是目前最优秀的解耦方式,依赖注入让Spring的Bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合在一起的 实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应资源查找回来;另一类就是依赖注入,而Spring主要使用的就是依赖注入.一般而言,依赖注入可以分为3种方式. 1.2 获取Bean对象的方式—getBean() 图解源码

使用较多的是前三种,具体使用的体会后面注入时会用到 1.3 通过全类名(反射)(最常用) 1.3.1 构造器注入(常用) 构造器注入依赖于构造方法实现,而构造方法可以是有参数的或者无参数的.Spring也可以采用反射的方式,通过使用构造方法来完成注入,构造器注入在 元素里声明属性,这就是构造器注入的原理. 为了让Spring完成对应的构造注入,我们首先需要创建一个JavaBean类,并创建构造方法,这样在使用构造器注入时就会通过对应信息通过反射的形式去创建对象.如果你对反射机制不熟悉,这篇文章会帮到你—>反射 创建一个User类

在全局配置文件applicatioContext.xml中配置Bean信息,这里使用了4种常见的构造器注入的方式:无参构造|索引匹配,类型匹配,名称匹配

测试方法

使用构造器注入缺点也是很明显的,当参数比较少的时候,可读性还可以,但是参数很多时,这种方式就非常复杂了,这时候就应该考虑setter注入了 1.3.2 setter注入(常用) setter注入时Spring中最主流的注入方式.它利用JavaBean规范所定义的setter方法来完成注入,灵活且可读性高.消除了使用构造器注入时出现多个参数的可能性.首先可以把构造方法声明为无参数的,然后使用setter注入为其设置对应的值,其实也是通过Java反射技术来实现的. Setter方式注入也称为属性注入|设值注入,可以给指定Bean注入属性值或者依赖的对象,属性注入使用 元素, 使用 name 属性指定 Bean 的属性名称,value 属性或 子节点指定属性值. 属性注入是实际应用中最常用的注入方式 创建一个User类

修改配置文件信息

测试结果

通过测试结果我们可以很明显看出,Spring"私底下"自动调用了对应属性的setter方法,spring会通过反射调用没有参数的构造方法生成对象,同时通过反射对应的setter注入配置的值.这是Spring最主要的方式,实际中应用最广方. 所以说,如果Bean类中定义了其他带参构造方法,那么必须手动声明一个无参构造器 1.4 通过静态工厂(很少用) 静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让Spring管理所有对象,不能直接通过"工厂类.静态方法()"来获取对象,而是依然通过Spring注入的形式获取. 在配置文件中需要使用factory-method属性指定工厂类中的静态方法 下面是代码示例 工厂类

User类

配置文件

测试类

1.5 通过实例工厂(很少用) 实例工厂的意思就是获取对象实例的方法不是静态的,所以需要先创建一个工厂类实例,然后在调用该工厂类的实例方法,通过该实例方法再创建我们需要的Bean实例 以下为代码示例 实例工厂类

User类

配置文件

测试类

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring中bean的注入方式
 首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入。依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖。
Kevin_Zhang
2019/02/20
1.8K0
Spring如何管理Bean的生命周期呢?
我们都知道,在面试的过程中,关于 Spring 的面试题,那是各种各样,很多时候就会问到关于 Spring的相关问题,比如 AOP ,IOC 等等,还有就是关于 Spring 是如何管理 Bean 的生命周期的相关问题,今天了不起就来和大家一起看看 Spring 是如何管理 Bean 的生命周期的。
Java极客技术
2024/05/28
1320
Spring如何管理Bean的生命周期呢?
Spring框架入门(三):依赖注入和控制反转
依赖注入(IoC) 和 控制反转(DI) 有什么关系呢?其实它们是同一个概念的不同角度描述。
sr
2019/05/23
5490
Spring系列四:Spring Bean(深度讲解)
Spring支持构造方法注入、属性注入、工厂方法注入,其中工厂方法注入,又可以分为静态工厂方法注入和非静态工厂方法注入。
叶秋学长
2022/07/25
4880
Spring系列四:Spring Bean(深度讲解)
Spring中bean的配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/52849959
大黄大黄大黄
2018/09/14
5560
Spring 学习笔记(2) Spring Bean
IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖,以及依赖的注入等等。
归思君
2023/10/16
2010
Spring 学习笔记(2) Spring Bean
Spring-IOC实现【01-XML配置方式】
IOC概念 IoC控制反转(IoC,Inversion of Control), 是一个概念,是一种思想。控制反转就 是对对象控制权的转移,从程序代码本身反转到了外部容器。把对象的创建、初始化、 销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。 DI依赖注入:Dependency Injection。 依赖注入DI是指程序运行过程中,若需要调用另 一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创 建后传递给程序。 依赖注入是目前最优秀的解耦方
用户4919348
2019/04/02
5860
Spring-IOC实现【01-XML配置方式】
Spring IOC 及 Spring 中Bean的三种创建方式
SSM开源框架是现在市场上主流的Java开发框架,其中包含了Spring、SpringMVC以及Mybatis三大主要框架。在SSM框架中Spring是整个框架的核心,这是因为Spring有强大的资源整合能力,下面让我们一起来学习一下强大的Spring框架。
运维搬砖
2018/12/22
4.7K0
Spring IOC 及 Spring 中Bean的三种创建方式
Java 必看的 Spring 知识汇总!
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。 Spring优点: 低侵入式设计,代码的污染极低; 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺; Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦 S
Java技术栈
2018/06/04
6970
Spring学习(2):Spring Bean管理(上)
在前面使用了Spring的ApplicationContext,并通过它的getBean方法获取Spring的配置文件applicationContext.xml,然后得到Bean的class对象。
啃饼思录
2020/07/18
9470
Spring学习(2):Spring Bean管理(上)
spring八股记录
model(模型:service、daomapper);view(视图:jsp);controller(控制:servlet)
用户11204257
2024/12/04
700
Spring 中用 XML 装配 Bean,竟然有五种姿势!
Spring Boot 系列还在不断的更新,有小伙伴和松哥抱怨对 Spring 还不太懂,其实我 2016 年的时候写过一点点 Spring 的教程,但是不够详细,因此,最近决定再挖一个坑,和大家聊聊 Spring 的一些常见用法,也顺便聊聊源码。
江南一点雨
2019/08/02
1.3K0
Spring 中用 XML 装配 Bean,竟然有五种姿势!
spring课件
Spring的核心是轻量级(Lightweight)的容器(Container),它实现了IoC容器、非侵入性(No intrusive)的框架,并提供AOP概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),另外,Spring也提供了对现有框架(Struts、JSF、Hibernate等)的整合方案。
用户2188327
2020/07/06
8650
Spring第一天:Spring的概述、SpringIOC入门(XML)、Spring的Bean管理、Spring属性注入
以前也学习过Spring框架,不过好久没用,当时学完也没做什么总结,都忘的差不多了,今天再从头开始学习一遍。无论是SSH还是SSM都离不开Spring,所以Spring还是很重要的,对于一个想要从事JavaEE开发的人,一定要好好学习Spring框架。Spring的学习计划如下:
AlbertYang
2020/09/08
4150
Spring第一天:Spring的概述、SpringIOC入门(XML)、Spring的Bean管理、Spring属性注入
Spring IoC容器与Bean管理
从本节开始,我将要学习作为java高级阶段最最最最重要的一个框架体系,名为Spring。Spring是整个Java生态中最重要的一环。因为我也是初学,所以我的概括也不一定全面和精炼。写这一章只是为自己以后复习。
害恶细君
2022/11/22
7100
Spring IoC容器与Bean管理
Java EE之SSM框架整合开发 -- (3) Spring Bean
在Spring的应用中,Spring IOC容器可以创建、装配和配置应用组件对象,这里的组件对象称为Bean。本章我们主要讲述Spring中Bean的配置、Bean的实例化、Bean的作用域、Bean的生命周期、Bean的装配方式。
浩Coding
2019/07/03
4610
Spring入门
使用setter注入时,需要给每一个依赖项设置setter方法,配置文件中的 <property> 坐标中name属性的值实为setter方法的变量名,如:setter方法为 public void setBookDao(),则name属性的值为bookDao。ref属性的值为一个bean,所以需要注入的bean首先要配置bean。
Cikian.
2023/08/09
1580
Spring入门
Spring 学习笔记 - 核心容器
基础框架:Spring Framework ——是其他项目的根基
知识分子没文化
2023/07/01
1810
Spring 学习笔记 - 核心容器
java从入门到精通二十六(Spring框架篇章一)
核心层 Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块 AOP层 AOP:面向切面编程,它依赖核心层容器,目的是在不改变原有代码的前提下对其进行功能增强 数据层 Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术 Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现 web层 在SpringMVC框架体现 Test层 那就是测试,集合Junit完成单元测试和集成测试。
兰舟千帆
2022/07/16
2940
java从入门到精通二十六(Spring框架篇章一)
2022年最新版Spring专项面试突击
Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。
JavaEdge
2022/02/02
3210
2022年最新版Spring专项面试突击
相关推荐
Spring中bean的注入方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文