Spring 中的 Bean 配置

本文详细介绍Spring框架中的IOC容器概念及其配置Bean的各种方式,包括基于XML和注解的配置方法,Bean的生命周期管理,依赖注入策略等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >





一. IOC & DI 概述

二. 配置 bean

        ①. 配置形式:基于 XML 文件的方式;基于注解的方式

       ②. Bean 的配置方式:通过全类名(反射), 通过工厂方法(静态工厂方法 & 实例工厂方法),  FactoryBean

       ③. IOC 容器 BeanFactory & ApplicationContext 概述

       ④. 依赖注入的方式:属性注入;构造器注入

       ⑤. 注入属性值细节

       ⑥. 自动转配

       ⑦. bean 之间的关系:继承;依赖

       ⑧. bean 的作用域:singleton;prototype;WEB 环境作用域

       ⑨. 使用外部属性文件

       ⑩. spEL 

       ⑪.  IOC 容器中 Bean 的生命周期

       ⑫. Spring 4.x 新特性:泛型依赖注入

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~

一. IOC & DI 概述


~~~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~

二. 配置 bean

(1). bean配置形式

            ①. 基于 XML 文件的方式

            ②. 基于注解的方式

(2). Bean 的配置方式

                              ①. 通过全类名(反射)

                              ②. 通过工厂方法(静态工厂方法 & 实例工厂方法)

                              ③. FactoryBean

                   ①. 在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例                                 化后, 才可以从 IOC 容器里获取 Bean 实例并使用.

                   ②. Spring 提供了两种类型的 IOC 容器实现

                                               Ⅰ. BeanFactory: IOC 容器的基本实现

                                               Ⅱ. ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口

                解释BeanFactory是 Spring 框架的基础设施,面向 Spring 本身;

                            ApplicationContext 面向使用 Spring 框架的开发者,

                           几乎所有的应用场合都直接使用 ApplicationContext 而非底层的 BeanFactory,无论使用何种方式, 配置文件时相同的


(3) ApplicationContext 的主要实现类

                                ①.  ClassPathXmlApplicationContext:从 类路径下加载配置文件

                                ②.  FileSystemXmlApplicationContext: 从文件系统中加载配置文件




(4). 依赖注入的方式

                Spring 支持3 种依赖注入的方式

                         ①.  属性注入

                         ②. 构造器注入                 

                         ③. 工厂方法注入(很少使用,不推荐)

                             

                            

示例如下:

	<!-- 
		构造器注入如何区分重载的构造器?
		        使用构造器注入属性值可以指定参数的位置和参数的类型,来区分其重载的构造器。
	 -->
	<bean id="phone" class="com.baidu.spring.beans.Phone">
		<!-- 构造器注入 -->
		<constructor-arg value="HuaWei" index="0"></constructor-arg>
		<constructor-arg value="ShenZhen" index="1"></constructor-arg>
		<constructor-arg value="4889"  type="double"></constructor-arg>
	</bean>
	<bean id="phone2" class="com.baidu.spring.beans.Phone">
		<!-- 构造器注入 -->
		<constructor-arg value="Mi" type="java.lang.String"></constructor-arg>
		<constructor-arg value="FoSan" type="java.lang.String"></constructor-arg>
		<constructor-arg value="25000"  type="int"></constructor-arg>
	</bean>
(5).  注入属性值细节
               a.  字面值

                b.引用其它 Bean   

                c. 内部 Bean

                d. 注入参数详解:null 值和级联属性

                e. 集合属性

                f. 使用 utility scheme 定义集合

                g. 使用 p 命名空间

                









(6) . 自动转配




(7).bean 之间的关系:继承;依赖



(8).  bean 的作用域singleton;prototype;WEB 环境作用域



(9).   使用外部属性文件



(10). SpEL 







(11). IOC 容器中 Bean 的生命周期 




(12). Spring 4.x 新特性:泛型依赖注入





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值