FactoryBean接口

实现了FactoryBean接口的bean不是简单的一个bean,通过getObject来创建对象。常见子类有
ProxyFactoryBean .
另外他在被引用后,ioc框架并不是直接把FactoryBean实例传递给目标,而是通过调用FactoryBean的getObject,把返回的结果传递给目标。

JndiObjectFactoryBean
<bean id="jndiQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="QueueCF"/>
</bean>
如上,jndiTemplate本身就可以从jndi获取对象,但是他没有实现FactoryBean。而CachingConnectionFactory的实例化参数targetConnectionFactory是,javax.jms.ConnectionFactory类型的,直接存在类型差异,但是jndiTemplate的lookup可以生产ConnectionFactory对象,通过FactoryBean,可以完成这样的一步,有点像是适配器的感觉了。

你可能感兴趣的:(AOP,bean)