首页 > 编程语言 > 详细

Spring FactoryBean 接口

时间:2021-06-22 09:34:08      阅读:14      评论:0      收藏:0      [点我收藏+]

FactoryBean

该接口用于在BeanFactory中提供个别对象自己的工厂实现。

作用

实现该接口后,获取到bean不再是实现这个接口的对象,而是其中指定的需要返回的对象。 可以使用它来创建自己的复杂对象(自己的工厂)

实现步骤

1.实现接口

public class MyConnectionFactoryBean implements FactoryBean<Connection>{
	/**
	 * 对象实例的创建方式(自己实现对象的创建,不再由spring来创建)
	 */
	public Connection getObject() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");
		Connection conn = DriverManager.getonnection("jdbc:mysql://localhost:3306/test","test","123456");
		return conn;
	}
	/**
	 * 返回需要创建的对象实例的类型
	 */
	public Class<?> getObjectType(){
		return Connection.class;
	}
	
	/**
	 * 指定对象实例是否以单例方式创建
	 */
	public boolean isSingleton(){
		return true;
	}
}

2.配置

<!--
	由于 MyConnectionFactoryBean 实现了 FactoryBean接口, 所在配置时我们希望获取到的bean并不是MyConnectionFactoryBean 而是该工厂所创建的复杂对象:Connection,
    所以通过Spring getBean方法获取到的bean对象就是 Connection 对象
-->
<bean id="myConnection" class="com.learn.MyConnectionFactoryBean"></bean>

3.使用

@Test
public void test() {
	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
	Object conn = context.getBean("myConnection"); //获取到的是Connection 对象实例, 而不是 MyConnectionFactoryBean 实例
	System.out.println(conn);
}

Spring FactoryBean 接口

原文:https://www.cnblogs.com/dreamsrj/p/14916117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!