答:BeanFactory
接口擅长于处理bean的初始化和配置,提供了配制框架及基本功能;ApplicationContext
是BeanFactory
的扩展,功能得到了进一步增强,比如更易 与Spring AOP集成、资源处理(国际化处理)、事件传递及各种不同应用层的context实现 (如针对web应用的WebApplicationContext
)。简而言之,一般把ApplicationContext
接 口作为首选。2.为什么使用bean?
答:使用'bean'这个名字而不是'组件'(component) 或'对象'(object)的动机 源于Spring框架本身(它产生的部分原因就是对Enterprise Java Beans复杂性的一次解构)。
3.多种资源加载配置元数据?
答:Spring IoC容器可以通过多种途径来加载配置元数据,比如本地文件系统、Java CLASSPATH
等。Resource
抽象机制。
4.怎么实例化容器?
答:ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"services.xml", "daos.xml"});
// anApplicationContext
is also aBeanFactory
(via inheritance)
BeanFactory factory = context;
XML配置元数据的结构:相对路径
5.bean的在Spring IOC 容器中怎么定义的?
答:bean定义由BeanDefinition
对象来表示。包括全限定类名、bean行为的定义、对其他bean的引用、
创建bean实例时的其他配置设置。他们被映射为中的properties:
class-类名,name-名字,scope-作用域,constructor arguments - 构造器参数,properties - 属性,autowiring mode
自动装配,dependency checking mode - 依赖检查,lazy-initialization mode - 初始化延迟,
initialization method - 初始化方法, destruction method - 析构方法。
6.bean的命名、 bean的别名?
答:bean的命名采用标准的Java命名约定,即小写字母开头,首字母大写间隔 的命名方式。如accountManager
、accountService
、userDao
及loginController
,等等。
xml配置别名:
7.实例化bean的方式?
答:
1)用构造器来实例化。
IoC容器不仅限于管理JavaBean,它可以管理任意 的类。
2)使用静态工厂方法实例化。createInstance()
必须是一个static方法。
3)使用实例工厂方法实例化。
8.使用容器
从本质上讲,BeanFactory
仅仅只是一个 维护bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory
我们可以访问bean定义。下面的例子创建了一个bean工厂,此工厂 将从xml文件中读取bean定义:
基本上就这些了,接着使用getBean(String)
方法就可以取得bean的实例;BeanFactory
提供的方法极其简单。 BeanFactory
接口提供 了非常多的方法,但是对于我们的应用来说,最好永远不要调用它们,当然也包括 使用getBean(String)
方法,这样可以避免我们对 Spring API的依赖。
没有评论:
发表评论