知识大全 Spring中bean的基本xml配置

Posted 属性

篇首语:但使书种多,会有岁稔时。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring中bean的基本xml配置相关的知识,希望对你有一定的参考价值。

Spring中bean的基本xml配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在spring容器内拼凑bean叫作装配 装配bean的时候 你是在告诉容器 需要哪些bean 以及容器如何使用依赖注入将它们配合在一起

  理论上 bean装配可以从任何资源获得 包括属性文件 关系数据库等 但xml是最常见的spring 应用系统配置源 Spring中的几种容器都支持使用xml装配bean 包括

  

  XmlBeanFactory  ClassPathXmlApplicationContext  FileSystemXmlApplicationContext  XmlWebApplicationContext

  基本的xml配置包括如下几个方面

   添加一个bean

   设置bean的属性

   手动设置

   通过Setter方法

   通过构造器

   自动设置

  其中bean的属性即为bean里的成员变量 这些成员变量值的获得可以通过setter方法 例如某个属性为name 则setter方法为setName(String name) 或者通过构造器在类被实例化时初始化 Setter方法(例如setName方法)或者构造器的调用都可以通过在xml文件里进行配置 从而实现让spring容器来自动进行

   添加一个bean

  以下是一个例子

  

  <bean id = mybean Class = blog spring MyBean Singleton = false init method = initMethod destroy method = destroyMethod autowire = autowire type />

  下面是对该标签里各个属性的解释

  Id 标识该bean的名称 通过factory getBean( id )来获得实例

  Class 该bean的类路径

  Singleton 默认为true 即单实例模式 每次getBean( id )时获取的都是同

  一个实例 如果设置为false 即原型模式 则每次获取的是新创建的实例

  Init method 在bean实例化后要调用的方法(bean里定义好的方法)

  Destroy method bean从容器里删除之前要调用的方法

  Autowire 其属性要通过何种方法进行属性的自动装配

  对于上述的各个属性 id和class是必要的 其他的则可以省略 例如如果设置了autowire的值 则表明需要自动装配 否则是手动装配

   通过Setter方法手动设置bean里的属性

  Bean里的属性通过<property>标签来标识 有以下几种情况

  ● 简单类型属性

  

  <bean id = mybean class = blog spring MyBean ><property name = name ><value>springTest</value></property></bean>

  ● 引用其他bean <bean id = mybean class = blog spring MyBean />

  

  <bean id = mybean class = blog spring MyBean /><bean id = mybean class = blog spring MyBean ><property name = name ><ref bean = mybean /></property></bean>

  也可以将<ref>改为 <bean class = …… >

  这样叫做内部bean 缺点是无法在其他地方重用这个bean的实例

  ● 装配集合

  共有以下几种集合的装配 ****装配List和数组****

  

  ****装配List和数组****<property name = nameList ><list><value>something</value><ref bean = blog spring MyBean /><value>otherThing</value></list></property>****装配Set****<property name = nameList ><set><value>something</value><ref bean = blog spring MyBean /><value>otherThing</value></set></property>****装配Map****<property name = nameList ><map><entry key = key ><value>value </value></entry><entry key = key ><ref bean = mybean /></entry></map></property>****装配Properties****<property name = nameList ><props><prop key = prop >value </prop><prop key = prop >value </prop></props></property>

  ● 设置null

  要将一个属性null 需要通过<null />标签 如果不设置 则属性为默认值(在实例化时)而不是null

  <property name= name > <null /> </property>

   通过构造器手动设置bean里的属性

  假设有如下一个bean

  

  Public class MyBean Public MyBean( String arg MyBean arg String arg )

  则可以在xml里这样配置该bean

  

  <bean id = mybean class = blog spring MyBean ><constructor arg index = ><value>springTest</value><constructor arg><constructor arg index = ><ref bean = mybean /><constructor arg></bean>

  其中的index是用来标识该参数在构造函数里的位置的 并从 开始

   让spring完成自动装配

  例如

  

  <bean id = mybean class = blog spring MyBean autowire = autowire type />

  下面是几种autowire type的说明

  ● byname 试图在容器中寻找和需要自动装配的属性名相同的bean或id 如果没有找到相应的bean 则这个属性未被装配上

  ● byType 试图在容器中寻找一个与需要自动装配的属性类型相同的bean或id 如果没有找到 则该属性未被装配上

  ● constructor 试图在容器中寻找与需要自动装配的bean的构造函数参数一致的一个或多个bean 如果没找到则抛出异常

  ● autodetect 首先尝试使用constructor来自动装配 然后再使用byType方式

  从上面可以看出 如果某个bean不手动设置autowire属性 则默认为手动装配 如果需要将所有bean都设置为自动装配时 可以通过在<beans>标签中设置default autowire属性 <beans>标签是整个xml文档的根 在它下面就是一个个的<bean>

  其中default autowire的值也有byName byType constructor autodetect四种

  例如配置如下

  

  <beans default autowire = byName > </beans>

  自动装配可能带来不确定性问题 例如使用byType时可能同时发现两个相同的类型 则不知道该采用哪一个 所以可能混合采用自动和手动装配 例如 对某个bean设置为自动装配 而对其某个属性则手动明确的设置其值 例如

  

  <bean id = mybean class = blog spring MyBean Autowire = byType ><property name = name ><ref bean = myBean ></property></bean>

cha138/Article/program/Java/ky/201311/28414

相关参考

知识大全 Java中如何获取Spring中配置的bean

Java中如何获取Spring中配置的bean  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一

知识大全 解析Java中如何获取Spring中配置的bean

解析Java中如何获取Spring中配置的bean  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本

知识大全 Spring中XML配置的12个技巧[2]

Spring中XML配置的12个技巧[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  尽量使

知识大全 Spring中XML配置的12个技巧[1]

Spring中XML配置的12个技巧[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Spr

知识大全 spring在web.xml中和在struts中的不同配置

  Spring中WebApplicationContext的研究  ApplicationContext是Spring的核心Context我们通常解释为上下文环境我想用容器来表述它更容易理解一些Ap

知识大全 Spring集成Quartz的XML配置

Spring集成Quartz的XML配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <

知识大全 Spring中加载XML配置文件的方式

Spring中加载XML配置文件的方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  sprin

知识大全 Spring XML配置的12个技巧

SpringXML配置的12个技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    Sprin

知识大全 自然的访问spring容器中的bean

   Spring依赖其IOC特征轻松的管理著一堆非常有价值的bean这些bean在spring容器中的依赖关系都已注入好所以相互调用非常方便  但既然是有价值的bean

知识大全 详解Spring中bean的scope

详解Spring中bean的scope  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何使用s