One Step

Spring IoC容器的实例化:

Resource resource = new FileSystemResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
... 或...
ClassPathResource resource = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(resource);
... 或...
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
// of course, an ApplicationContext is just a BeanFactory
BeanFactory factory = (BeanFactory) context;
多个spring的元数据配置文件的处理:
        将XML配置文件分拆成多个部分是非常有用的。为了加载多个XML文件生成一个ApplicationContext实例,可以将文件路径作为字符 串数组传给ApplicationContext构造器。而bean factory将通过调用bean defintion reader从多个文件中读取bean定义。
        通常情况下,Spring团队倾向于上述做法,因为这样各个配置并不会查觉到它们与其他配置文件的组合

Bean的别名:
        为了让应用的每一个组件能更容易的对公共组件进行引用。采用别名。
        在定义bean时就指定所有的别名并不是好。有时我们期望能在当前位置为那些在别处定义的bean引入别名。在XML配置文件中,可用单独的 <alias/> 元素来完成bean别名的定义。如:
<alias name="fromName" alias="toName"/>
实例化Bean:
        就Spring IoC容器而言,bean定义基本上描述了创建一个或多个实际bean对象的内容。当需要的时候,容器会从bean定义列表中取得一个指定的bean定 义,并根据bean定义里面的配置元数据使用 反射机制来创建一个实际的对象。
        当采用XML描述配置元数据时,将通过 <bean/>元素的 class属性来指定实例化对象的类型。 class 属性 (对应 BeanDefinition实例的 Class属性)通常是必须的(不过也有两种例外的情形 )。class属性主要有两种用途:在大多数情况下,容器将直接通过反射调用指定类的构造器来创建bean;在极少数情况下,容器将调用类的静态 工厂方法来创建bean实例,class属性将用来指定实际具有静态工厂方法的类。
1>构造器实例化:
        IoC容器不仅限于管理JavaBean,它可以管理 任意的类。不过大 多数使用Spring的人喜欢使用实际的JavaBean(具有默认的(无参)构造器及setter和getter方法),但在容器中使用非bean形式 (non-bean style)的类也是可以的。比如遗留系统中的连接池,很显然它与JavaBean规范不符,但Spring也能管理它。
2>静态工厂实例化:
       通过factory-method属性来指定创建bean实例的工厂方法。Spring将调用此方法(其可选参数接下来介绍)返回实例对象
3>实例化工厂方法实例化:
       用来进行实例化的实例工厂方法位于另外一个已有的bean中,容器将调用该bean的工厂方法来创建一个新的bean实例为使用此机制,class属性必须为空,而factory-bean属性必须指定为当前(或其祖先)容器中包含工厂方法的bean的名称,而该工厂bean的工厂方法本身必须通过factory-method属性来设定

你可能感兴趣的:(职场,休闲)