栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详解Spring中使用xml配置bean的细节

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详解Spring中使用xml配置bean的细节

整理总结刚学的关于spring的xml配置bean的知识。

在ApplicationContext.xml文件中使用bean节点配置bean,bean的属性id在IOC容器中必须是唯一的。


    

依赖注入有三种方式

  1. 属性注入
  2. 构造方法注入
  3. 工厂方法注入(很少使用,不推荐,本文不再介绍)

属性注入

通过 setter 方法注入Bean 的属性值或依赖的对象。属性注入使用 元素, 使用 name 属性指定 Bean 的属性名称,value 属性或 子节点指定属性值 。属性注入是实际应用中最常用的注入方式。HelloWorld类中的setName()方法,对应上边代码中的name属性,例如:把setName()方法名改为setName2(),property中的name属性值为name时则会报错,需要将name属性改为name2。

构造方法

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

构造器注入在 元素里声明属性, 中没有 name 属性。使用value属性值或value子节点为属性赋值。可以同时使用索引 index 和type属性对应为哪个属性赋值。index的值表示构造函数中参数的位置。type表示成员属性的类型,例如type="double" 或者type="Java.lang.String"


    
    
    

如果注入的值有特殊字符如”<>“,使用 包起来,不包起来的话xml会报错。如:

    
      ]]>
    

控制台打印的值为

在给bean注入属性时,若包含其他bean,可以通过 元素或 ref 属性为 Bean 的属性或构造器参数指定对 Bean 的引用。

也可以在属性或构造器里包含 Bean 的声明, 这样的 Bean 称为内部 Bean,当 Bean 实例仅仅给一个特定的属性使用时, 可以将其声明为内部 Bean. 内部 Bean 声明直接包含在 元素里, 不需要设置任何 id 或 name 属性,内部 Bean 不能使用在任何其他地方。


   
   
    
    
    
    
      ]]>
    
    
      250
    
   

   
    
    
    
    
    
    
    
      
 
 
 
      
    
     
 

可以使用专用的 元素标签为 Bean 的字符串或其它对象类型的属性注入 null 值。

和 Struts、Hiberante 等框架一样,Spring 支持级联属性的配置。但属性需要先初始化。例如代码中需要配置car对象的bean


    
    
    
    
    
    
    
    
 

集合属性

当注入的属性是集合时,Spring也提供了通过一组内置的 xml 标签(例如: , ) 来配置集合属性。

配置 java.util.List 类型的属性, 需要指定 标签, 在标签里包含一些元素. 这些标签可以通过 指定简单的常量值, 通过 指定对其他 Bean 的引用. 通过 指定内置 Bean 定义. 通过 指定空元素. 甚至可以内嵌其他集合.

数组的定义和 List 一样, 都使用 配置 java.util.Set 需要使用 标签, 定义元素的方法与 List 一样。

   
   
    
    
    
    
      
 
 
         
    
   

Java.util.Map 通过 标签定义, 标签里可以使用多个 作为子标签. 每个条目包含一个键和一个值。必须在 标签里定义键,因为键和值的类型没有限制, 所以可以自由地为它们指定 , , 元素.

可以将 Map 的键和值作为 的属性定义: 简单常量使用 key 和 value 来定义; Bean 引用通过 key-ref 和 value-ref 属性定义。

使用 定义 java.util.Properties, 该标签使用多个 作为子标签. 每个 标签必须定义 key 属性.


   
    
    
    
    
      
 
 
      
    
   

   
   
    
    
      
 root
 123456
 jdbc:mysql:///test
 com.mysql.jdbc.Driver
      
    
   

使用基本的集合标签定义集合时, 不能将集合作为独立的 Bean 定义, 导致其他 Bean 无法引用该集合, 所以无法在不同 Bean 之间共享集合.

可以使用 util schema 里的集合标签定义独立的集合 Bean. 需要注意的是, 必须在 根元素里添加 util schema 定义。

   
   
    
    
   

   
    
    
    
   

使用 p 命名空间

为了简化 XML 文件的配置,越来越多的 XML 文件采用属性而非子元素配置信息。

Spring 从 2.5 版本开始引入了一个新的 p 命名空间,可以通过 元素属性的方式配置 Bean 的属性。使用 p 命名空间后,基于 XML 的配置方式将进一步简化。


   
   

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/145442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号