Spring Bean的实例化方式和Bean的种类暂记(Spring笔记007)

Bean的实例化方式

B e a n 的 实 例 化 方 式 { 默 认 构 造 : < b e a n    i d = " B o o k S e r v i c e I d "    c l a s s = "    ∼ . B o o k S e r v i c e I m p l " > 静 态 工 厂 : s t a t i c 修 饰 的 方 法 + 工 厂 模 式 实 例 工 厂 : 所 有 的 方 法 必 须 是 非 静 态 的 Bean\mathrm{的实例化方式}\left\{\begin{array}{l}\mathrm{默认构造}:<bean\;id="BookServiceId"\;class="\;\sim.BookServiceImpl">\\\mathrm{静态工厂}:static修饰的方法+工厂模式\mathrm{}\\\mathrm{实例工厂}:\mathrm{所有的方法必须是非静态的}\end{array}\right. Bean的实例化方式⎩⎨⎧​默认构造:<beanid="BookServiceId"class="∼.BookServiceImpl">静态工厂:static修饰的方法+工厂模式实例工厂:所有的方法必须是非静态的​

静态工厂:常用于Spring去整合其他框架或工具

<bean id="UserServiceId" class="工厂的全限定类名(包名+类名)" factory-method="静态的生产方法"></bean>

实例工厂:必须先有工厂实例,通过工厂实例创建对象

<bean id="MyBeanFactoryId" class="~.BookServiceFactory"></bean>
<bean id="UserServiceId" factory-bean="MyBeanFactoryId" factory-method="creatrService"></bean>

Bean的种类

1.普通Bean
2.FactoryBean

FactoryBean:一种特殊的Bean,具有工厂生产对象的能力,只能生成特定的对象,bean必须使用FactoryBean接口,此接口提供getObject()方法用于获取特定的Bean

<bean id="" class="FB"></bean>

先创建FB实例,使用getObject()方法,并返回方法的返回值
FB fb=new FB();
return fb.getObject();

BeanFactory和FactoryBean对比

BeanFactory 工厂用于生成任意bean

FactoryBean 特殊的bean,用于生成另一个特定的bean例如:ProxyFactoryBean,此工厂bean用于生产代理,bean id="" class="ProxyFactoryBean"可获得代理对象实例,AOP使用

上一篇:性能测试解惑之并发压力


下一篇:【CF449D】Jzzhu and Numbers