成都创新互联网站制作重庆分公司

IOC操作Bean管理(FactoryBean)-创新互联

1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean)
2、普通 bean:在配置文件中定义 bean 类型就是返回类型
3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样
第一步创建类,让这个类作为工厂 bean,实现接口 FactoryBean
第二步实现接口里面的方法,在实现的方法中定义返回的 bean 类型

创新互联技术团队十多年来致力于为客户提供网站建设、成都网站建设、成都品牌网站建设成都全网营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了千余家网站,包括各类中小企业、企事单位、高校等机构单位。
public class MyBean implements FactoryBean{//定义返回 bean 
    @Override 
    public Course getObject() throws Exception {Course course = new Course(); 
        course.setCname("abc"); 
        return course; 
    } 
    @Override 
    public ClassgetObjectType() {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://cxhlcq.com/article/gdcgg.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部