您的位置:首页 > 职场人生

2018-02-24电话面试总结(2)

2018-02-25 23:30 253 查看
factorybean应用场景

org.springframework.beans.factory.FactoryBean<T>是一种特殊的Bean,跟普通Bean不同,其返回的对象不是指定类的一个实例,而是该FactoryBean的getObject方法所返回的对象。
FactoryBean 通常是用来创建比较复杂的bean,一般的bean 直接用xml配置即可,但如果一个bean的创建过程中涉及到很多其他的bean 和复杂的逻辑,用xml配置比较困难,这时可以考虑用FactoryBean。
FactoryBean有三个实现方法:
Object getObject():返回本工厂创建的对象实例。此实例也许是共享的,依赖于该工厂返回的是单例或者是原型。
boolean isSingleton():如果FactoryBean返回的是单例,该方法返回值为true,否则为false
Class getObjectType():返回对象类型。对象类型是getObject()方法返回的对象的类型,如果不知道的类型则返回null。
当使用ApplicationContext的getBean()方法获取FactoryBean实例本身而不是它所产生的bean,则要使用&符号+id。比如,现有FactoryBean,它有id,在容器上调用getBean("myBean")将返回FactoryBean所产生的bean,调用getBean("&myBean")将返回FactoryBean它本身的实例。
经典的factorybean应用场景:搭配InitializingBean的afterPropertiesSet使用,在初始化bean的时候执行。

具体的例子见:https://www.jianshu.com/p/b9439edb8408
beanfactory是什麽。

BeanFactory接口定义了ioc容器的最基本的形式,并且提供了ioc容器所应该遵守的基本的服务契约,同时,这也是我们使用ioc容器所应该遵守的最顶层和最基本的编程规范,这些接口定义勾画了ioc的基本轮廓,很显然,在Spring的代码实现中,BeanFactory只是一个接口类,并没有
ApplicationContext是 spring 中较高级的容器。它扩展了BeanFactory接口,它可以加载配置文件中定义的 bean,将所有的 bean 集中在一起,当有请求的时候分配 bean。 另外,它增加了企业所需要的功能,比如,从属性文件从解析文本信息和将事件传递给所指定的监听器。这个容器在 org.springframework.context.ApplicationContext interface 接口中定义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: