spring中创建bean对象的三种方式以及作用范围

时间:2022-10-19 16:31:26

时间:2020/02/02

一.在spring的xml配置文件中创建bean对象的三种方式:

1.使用默认构造函数创建。在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数函数,则对象无法创建。

<bean id="one" class="sdnu.machi.one"></bean>

如果one.class中没有默认构造函数则会报错。

2.使用普通工厂中的方法创建对象(使用某个类中的方法创建对象,并存入spring容器)。

<bean id="two" class="sdnu.machi.two"></bean>
<bean id="one" factory-bean="two" factory-method="getOne"></bean>

在two.class中存在一个非静态方法getOne的返回值是类One,如果要获得类One的对象,需要通过上面两行代码进行配置。

3.使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入spring容器)

<bean id="one" class="sdnu.machi.two" factory-method="getOne"></bean>

在类two中存在一个静态方法的返回值是类One,想要通过类two获得类One的对象,需要通过上面一行代码进行配置。

二.bean的作用范围

bean标签的scope属性

1.作用:用于指定bean的作用范围

2.取值:常用的就是单例的和多例的

(1)singleton:单例的(默认值)

(2)prototype:多例的

(3)request:作用于web应用的请求范围

(4)session:作用于web应用的会话范围

(5)global-session:作用于集群环境的会话范围(全局会话范围),当不是集群环境时,他就是session

三.在类文件中使用配置文件

ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
One one = (One)ac.getBean("one");