如何使用spring的FactoryBean

 时间:2024-10-13 19:22:28

1、在开始定义我们自己的工厂bean之前,先介绍下FactoryBean这个接口类有哪些方法:T getObject():返回实际工厂bean创建的bean实例,如果是单实例,会放到spring的缓存池中boolean isSingleton():返回bean实例的作用域是singleton还是prototype。Class<T> getObjectType():返回工厂创建的bean类型。

如何使用spring的FactoryBean

2、首先创建一个简单书本对象类/*** Created by shaowei on 2017/7/13.* 书本*/public class Book { /** * 名字 */ private String name; /** * 价格 */ private double price; public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; }}

3、创建BookFactoryBean类,实现FactoryBean接口/*** Created by shaowei on 2017/7/13.* 书本工厂bean*/public class BookFactoryBean implements FactoryBean<Book> { @Override public Book getObject() throws Exception { Book book = new Book(); book.setName("spring"); book.setPrice(80.0); return book; } @Override public Class<?> getObjectType() { return Book.class; } @Override public boolean isSingleton() { return false; }}

4、创建测试工厂bean测试类/*** Created by shaowei on 2017/7/13.* spring工厂bean测试类*/public class TestFactoryBea荏鱿胫协n { @Test public void testGetBean(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-test.xml"); System.out.println(context.getBean("book")); System.out.println(context.getBean("&book")); }}

5、可以选中一个测试方法,右键运行testGetBean测试类方法,如果不选中,默认是运行本测试类所有case方法

如何使用spring的FactoryBean

6、运行完成之后,可以从打印的结果中看到getBean("book")获取的是Book类的实例,getBean("&book")获取的则是BookFactoryBean工厂bean的实例

如何使用spring的FactoryBean

7、以上就是自定义方式使用spring的FactoryBean。我们也可以看看spring类库里已有的FactoryBean的实现例子,EhCacheManagerFactoryBean就是其中之一:@Overridepublic CacheManager getObject() { return this.cacheManager;}@Overridepublic Class<? extends CacheManager> getObjectType() { return (this.cacheManager != null ? this.cacheManager.getClass() : CacheManager.class);}@Overridepublic boolean isSingleton() { return true;}

如何使用spring的FactoryBean
  • 如何配置openSUSE Leap系统
  • winform编程之程序日志
  • c如何跨线程调用windows窗体控件
  • 安全开发流程(安全的软件开发流程)
  • 火狐浏览器如何清空缓存
  • 热门搜索
    心理健康手抄报花边 未来世界手抄报 关于热爱祖国的手抄报 文学手抄报内容 圣诞节手抄报内容 小学英语手抄报图片 关于理想的手抄报 劳动节手抄报图片 红领巾中国梦手抄报 经典诵读手抄报内容