目录
1. Spring Bean核心功能
Spring框架的核心功能有两个:
1、Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。
2、Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。
2. bean元素常用属性
属性名称 | 描述 |
---|---|
id | 是一个 Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成 |
name | Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开 |
class | 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,使用类的全限定名 |
scope | 用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原型)、request、session 和 global Session。其默认值是 singleton |
constructor-arg | <bean> 元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 |
property | <bean> 元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完成依赖注入。该元素的 name 属性指定 Bean 实例中的相应属性名 |
ref | <property> 和 <constructor-arg> 等元素的子元索,该元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例的引用 |
value | <property> 和<constractor-arg> 等元素的子元素,用于直接指定一个常量值 |
list | 用于封装 List 或数组类型的依赖注入 |
set | 用于封装 Set 类型属性的依赖注入 |
map | 用于封装 Map 类型属性的依赖注入 |
entry | <map> 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值 |
3. Spring实例化bean的三种方式
1. 构造方法的方式
Spring默认采用的是调用的无参构造方法来创建Bean 实例对象
2. 静态工厂的方式
-
创建一个工厂类
public class FruitFactory {
public static IFruit createFruit(){
return new Apple();
}
}
-
配置文件如下
<!--
静态工厂方式创建bean对象
class:工厂的类全名
factory-method:静态工厂方法
-->
<bean id="apple" class="com.XXX.factory.FruitFactory"
factory-method="createFruit" > </bean>
3. 实例工厂方式
这里还是用上面的工厂类
-
配置如下,需要先创建工厂对象,然后再另一个bean中引用对象,再调用对象的方法
<bean id="fruitFactory" class="com.XXX.factory.FruitFactory" > </bean>
工厂方式创建bean对象
id:唯一标识
class:返回的对象的类全名
factory-bean:工厂对象的引用id
factory-method:工厂中创建对象的实例方法
-->
<bean id="apple" factory-bean="fruitFactory" factory-method="createFruit"/>
4. SpringBean的作用域范围
Spring通过scope属性用于设定 Bean 实例的作用域,其属性值有 :
-
singleton(单例 默认)
-
prototype(原型)
-
request、session
-
global Session。