1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean)
2、普通 bean:在配置文件中定义 bean 类型就是返回类型
3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样
第一步创建类,让这个类作为工厂 bean,实现接口 FactoryBean
第二步实现接口里面的方法,在实现的方法中定义返回的 bean 类型
public class MyBean implements FactoryBean{//定义返回 bean
@Override
public Course getObject() throws Exception {Course course = new Course();
course.setCname("abc");
return course;
}
@Override
public Class>getObjectType() {return null;
}
@Override
public boolean isSingleton() {return false;
}
}
@Test
public void test3() {ApplicationContext context =
new ClassPathXmlApplicationContext("bean3.xml");
Course course = context.getBean("myBean", Course.class);
System.out.println(course);
}
IOC 操作 Bean 管理(bean 作用域)1、在 Spring 里面,设置创建 bean 实例是单实例还是多实例
2、在 Spring 里面,默认情况下,bean 是单实例对象
@Test
public void testCollection2(){ApplicationContext context = new ClassPathXmlApplicationContext("bean2.xml");
Book book1 = context.getBean("book", Book.class);
Book book2 = context.getBean("book", Book.class);
// book.test();
System.out.println(book1);
System.out.println(book2);
}
单实例对象
com.spring5.collectiontype.Book@b9afc07
com.spring5.collectiontype.Book@b9afc07
3、如何设置单实例还是多实例
(1) 在 spring 配置文件 bean 标签里面有属性(scope)用于设置单实例还是多实例
(2) scope 属性值
第一个值 默认值,singleton,表示是单实例对象第二个值 prototype,表示是多实例对象
多实例对象
com.spring5.collectiontype.Book@b9afc07
com.spring5.collectiontype.Book@382db087
(3) singleton 和 prototype 区别
第一 singleton 单实例,prototype 多实例
第二设置 scope 值是 singleton 时候,加载 spring 配置文件时候就会创建单实例对象
设置 scope 值是 prototype 时候,不是在加载 spring 配置文件时候创建对象,在调用
getBean 方法时候创建多实例对象
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章标题:IOC操作Bean管理(FactoryBean)-创新互联
网站地址:http://scyingshan.cn/article/gdcgg.html