java个人学习笔记:spring 容器

在xml文件中通过bean节点来配置bean

<bean id=”helloWordl” class=”com.cy.test.HelloWorld”></bean>

 

id:bean的名称

在ioc容器中必须是唯一的。

若id没有指定,spring自动将权限定性类名作为bean的名字。

id可以指定多个名字,名字之间用都好,分毫,或者空格分隔。

 

Spring IOC容器

在ioc容器读取bean配置创建bean实例之前。必须对它进行实例化。只有在容器实例化后,才可以从IOC容器里获取Bean的实例并使用。

spring提供了两种类型的ioc容器实现。

BeanFactory ioc容器的基本实现

ApplicationContext 提供了更多的高级特性,是BeanFactory的子接口。

BeanFactory 是spring框架的基础设施,面向spring本身。

ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用ApplicationContext二分BeanFactory

 

ApplicationContext 的主要实现类

ClassPathXmlApplicationContext:从类路径下加载配置文件。

FileSystemXmlApplicationContext:从文件系统中加载配置文件。

ConfigurableApplicationContext:扩展与ApplicationContext 新增两个主要方法refresh()和close()/在AppplicationContext具有启动,刷新和关闭上下文的能力。

 

ApplicationContext在初始化上下文的时候就实例化所有单例的Bean

WebApplicationContext是专门为web应用而准备的,它允许从相对于web根目录的路径中完成初始化工作。

从IOC容器中获取Bean

ApplicationContext的getBean()方法;

依赖注入的方式

属性注入

构造器注入

工厂方法注入(很少使用,不推荐)

 

 

属性注入

属性注入即通过setter方法注入Bean的属性值或者以来的对象

属性注入使用<property>元素,使用name属性指定Bean的属性名称,value或者<value>子节点指定属性值,

<bean id=”helloworld” class = “cy.test.HelloWorld”>

       <property name=”userName” value=”test”></property>

</bean>

 

构造注入

通过构造方法注入Bean的属性或者依赖的对象,它保证了Bean实例在实例化后就可以使用。

构造器注入在<constructor-arg>元素里申明属性,没有name属性。

 

 

引用其他Bean

组成应用程序的Bean经常需要互相协作以完成应用程序的功能,要使Bean能够相互访问,就必须在Bean配置文件中指定对Bean的引用。

在Bean配置文件中,可以通过<ref>元素或ref属性为Bean的属性或构造参数对Bean的引用。

也可以在属性构造器里包含bean的申明。这样子的bean称为内部bean

<bean id=”service” class=”com.cy.test.service”></bean>

<bean id=”action” class=”com.cy.test.action”>

    <property name=”service” ref=”service”></property>

</bean>

 

内部bean

当bean实例仅仅给一个特定的属性使用时,可以将其声明为内部bean 内部bean申明直接包含在<property>或者<construct-arg>元素里。不需要设置任何id或name属性。内部bean不能使用在其他任何地方。(没有id或者name引用)

集合属性

在spring中可以通过一组内置的xml标签<list><set><map>来配置集合属性

posted @ 2015-06-03 21:52  缥缈的云落寞的天  阅读(182)  评论(0编辑  收藏  举报