一、Bean的实例化方式
Bean的实例化有三种方式:
- 通过构造函数实例化(常用)
- 通过静态工厂实例化
- 通过实例工厂实例化
1. 通过构造函数实例化(常用)
<bean id="bean1" class="com.seven.entity.Bean1"/>
2. 通过静态工厂实例化
准备一个静态工厂:
package com.seven.factory;
import com.seven.entity.Bean2;
public class Bean2StaFactory {
public static Bean2 getBean2() {
Bean2 bean2 = new Bean2();
bean2.setMsg("通过【静态工厂】实例化的Bean2对象");
return bean2;
}
}
spring配置文件:
<bean id="bean2" class="com.seven.factory.Bean2StaFactory" factory-method="getBean2"/>
3. 通过实例工厂实例化
准备一个实例工厂:
package com.seven.factory;
import com.seven.entity.Bean3;
public class Bean3Factory {
public Bean3 getBean3() {
Bean3 bean3 = new Bean3();
bean3.setMsg("通过【实例工厂】实例化的Bean3对象");
return bean3;
}
}
spring配置文件:
<bean id="bean3Factory" class="com.seven.factory.Bean3Factory"/>
<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"/>
二、Bean的常用属性
- id
- name
- class
- scope
1. id
作用:给bean起名称,通过这个名称可以得到这个bean。
注意:不能包含特殊符号。
2. name
作用:与id属性的作用一样。
注意:与id的区别是,可以包含特殊符号。
3. class
作用:指定该bean的全限定类名。
4. scope
作用:设置该bean的作用范围,默认是单例。
可取值:
(1)singleton:默认值,单例。
(2)prototype:多例。
(3)request:WEB项目中,spring创建一个bean的对象,将对象存入到request域中。
(4)session:WEB项目中,spring创建一个bean的对象,将对象存入到session域中。
(5)globalSession:WEB项目中,运行在Porlet环境中,如果没有Porlet环境,则相当于是session。
测试一下:
spring配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- id属性,class属性 -->
<bean id