雷丰阳ssm课–factorybean实例用idea实现
使用idea来做一个factorybean的例子记录自己的笔记
新建需要自己的类–book
新建一个类实现factorybean,注意这里idea不一定会提示输入泛型,要自己输一下
public class MyfactoryBeanImple implements FactoryBean<Book> {
@Override
public Book getObject() throws Exception {
System.out.println("give me book");
Book book = new Book();
book.setName(UUID.randomUUID().toString());
return book;
}
/*
返回创建对象的类型,spring会自动调用这个方法来确认创建对象的类型
/
*/
@Override
public Class<Book> getObjectType() {
return Book.class;
}
两个函数,一个返回book对象,一个返回它的类型,我的idea没有单例判断函数
完了之后就去写ioc的xml文件,往里面填东西,加上这么一句,factorybean就注册了。
<bean id="myfactory" class="com.antiguigu.bean.MyfactoryBeanImple"/>
然后,为刚刚的MyfactoryBeanImple新建一个测试类:
@Test
public void myFactory(){
ApplicationContext myIoc = new ClassPathXmlApplicationContext("ioc.xml");
System.out.println("factory running...........");
Object bean = myIoc.getBean("myfactory");
System.out.println(bean);
}
在这里犯了一个错误,就是getbean的时候,如果你知道你最终获取的时book对象可以讲bean定义为Book对象,如果不知道就定义为Object,除此之外的任何定义都会出错。