spring管理bean的三种创建方式
Posted 缘在此季
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring管理bean的三种创建方式相关的知识,希望对你有一定的参考价值。
Spring支持如下三种方式创建Bean
1:调用构造器创建Bean
2:调用静态工厂方法创建Bean
3:调用实例工厂方法创建Bean
一:调用构造方法创建Bean
调用构造方法创建Bean是最常用的一种情况Spring容器通过new关键字调用构造器来创建Bean实例,通过class属性指定Bean实例的实现类,也就是说,如果使用构造器创建Bean方法,则<bean/>元素必须指定class属性,其实Spring容器也就是相当于通过实现类new了一个Bean实例。调用构造方法创建Bean实例,通过名字也可以看出,我们需要为该Bean类提供无参数的构造器。下面是一个通过构造方法创建Bean的最简单实例
1:Bean实例实现类 Person.java
- package publicclass private public Person(String name)
- );
- publicvoid +name);
- }
因为是通过构造函数创建Bean,因此我们需要提供无参数构造函数,另外我们定义了一个name属性,并提供了setter方法,Spring容器通过该方法为name属性注入参数。
2:配置文件beans.xml
- <? = =?> < =
- =
- ="http://www.springframework.org/schema/beans
- = =>
- > </>
配置文件中,通过<bean>元素的id属性指定该bean的唯一名称,class属性指定该bean的实现类,可以理解成Spring容器就是通过该实现类new了一个Bean。通过<constructor-arg>标签的name属性和value属性指定了:构造方法赋值。
3:测试类 PersonTest.java
- import import publicclass publicstaticvoid
- new);
- );
- }
4:运行结果
二:调用静态工厂方法创建Bean
1:首先我们定义一个Person的接口,定义一个说话的方法say()。 Person.java
- package publicinterface publicvoid }
2:Chinese Bean实现类Chinese.java
- package publicclassimplements private
- publicvoid this
- publicvoid
- );
- }
3:American Bean实现类American.java
- package publicclassimplements private
- publicvoid this
- publicvoid
- );
- }
与Chinese Bean实例没太大的区别,
4:重点来了 配置文件 beans.xml
- <? = =?> < =
- =
- ="http://www.springframework.org/schema/beans
- = = =>
- =/>
- = =/> >
- = = => =/> = =>> > </>
5:静态工厂 PersonFactory.java
- package publicclass publicstatic if"chinese" returnnew else returnnew }
6:主函数测试类 PersonTest.java
仅需将配置文件beans.xml修改为:
- <? = =?> < =
- =
- ="http://www.springframework.org/schema/beans
- = =/>
- = = =>
- =/> >
- = = => =>> > </>
运行结果是一样的:
调用实例工厂创建Bean和调用静态工厂的区别
https://blog.csdn.net/magicianjun/article/details/78737840