通过XML装配Bean

​ 尽管我们在生成Bean的过程中可以用到很多方法,但我们依然需要Spring的XML配置来完善更多的需求,下面就来介绍下XML装配Bean的过程是怎样的.

3.1创建XML配置规范

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
</beans>

1.先前提过的@Bean的注解实现效果和如下的配置一样

<bean id="quest" class="QuestImpl"/>

2.借助构造器初始化Bean,有如下两种方式可以实现:

  • <constructor-arg >元素名
  • 使用Spring3.0所引入的c-命名空间

如下:

<bean id="braveKnight" class="BraveKnight" >
<constructor-arg ref="quest"/>
</bean>
<bean id="braveKnight" class="BraveKnight" c:quest-ref="quest"/>

装配集合,当我们需要往构造器中传入相应的多个参数的时候,我们可以使用集合来装相应的参数值,如下:

<!--注入BraveKnight-->
<bean id="braveKnight" class="BraveKnight" ref="quest">
<constructor-arg>
<list>
<value>sgt</value>
<value>Twinkle, twinkle, little start</value>
</list>
</constructor-arg>
</bean>

我们也可以用<ref>元素代替<value>,实现bean的列表装配:

<!--注入BraveKnight-->
<bean id="braveKnight" class="BraveKnight" ref="quest">
<constructor-arg >
<list>
<ref bean="quest"/>
<ref bean="minstrel"/>
</list>
</constructor-arg>
</bean>

当然我们也可以用同样的方式使用<Set>去装配

3.2.设置属性

​ 到目前为止,我们都是通过构造器来注入相关的成员变量的,没有使用属性的Setter方法,接下来我们就看下Spring XML如何实现属性注入:

 <bean id="SgtPeppers" class="com.CDDemo.SgtPeppers">
<property name="title" value="sgt"/>
<property name="song" value="Twinkle, twinkle, little start"/>
</bean>

我们也可以使用p-命名空间的方式装配Bean:

<bean id="SgtPeppers" class="com.CDDemo.SgtPeppers" p:title="sgt" p:song="Twinkle, twinkle, little start"/>

​ 我们还可以用<list>来盛装更多的被集合List包裹的参数值:

  <property name="titleList">
<list>
<value>Twinkle</value>
<value>twinkle</value>
<value>little start</value>
</list>
</property>

3.3.混合配置

当我们需要把几个类组合在一起的时候可以用@Import注解的方式:

@Component
@Import(CDPlayerConfig.class)
public class SgtPeppers implements CompactDisc { private String title = "sgt";
private String song = "Twinkle, twinkle, little start"; public void play() {
System.out.println("title:" + title + "song:" + song);
}
}
@Component
@Import({CDPlayerConfig.class,CDTest.class})
public class SgtPeppers implements CompactDisc { private String title = "sgt";
private String song = "Twinkle, twinkle, little start"; public void play() {
System.out.println("title:" + title + "song:" + song);
}
}

如果需要引入配置中的Bean,则可以@ImportResource()中加入相应为配置文件的地址:

@Component
@Import({CDPlayerConfig.class,CDTest.class})
@ImportResource("classpath:application.xml")
public class SgtPeppers implements CompactDisc {
private String title = "sgt";
private String song = "Twinkle, twinkle, little start";
public void play() {
System.out.println("title:" + title + "song:" + song);
}
}

如果我们需要在一个XML中引入另一个XML的配置,可以使用<import resource>引入相关的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--将application.xml引入进来-->
<import resource="application.xml"/> </beans>

第2章—装配Bean—通过XML装配Bean的更多相关文章

  1. Spring装配Bean之XML装配bean

    在Spring刚出现的时候,XML是描述配置的主要方式,在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML的同义词. 现在随着强大的自动化配置和Java代码的配 ...

  2. Spring基础使用(一)--------IOC、Bean的XML方式装配

    基础 1.xml文件基础格式: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns=&q ...

  3. 利用jaxb实现xml和bean的相互转换

    1.使用jar包生成xsd文件 java -jar trang.jar a.xml a.xsd xml格式 生成的xsd文件 2.使用xjc命令生成bean文件 xjc a.xsd 生成的相关bean ...

  4. XML转Bean

    XML转Bean有很多方式,我使用的是xtream方式实现xml与bean的互转. 下面是简单的xml转bean /** * XML转换成bean * @param obj * @return yuy ...

  5. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

  6. spring学习总结——装配Bean学习三(xml装配bean)

    通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...

  7. SpringInAction--自动化装配Bean(显示装配之xml配置)

    Spring在配置时候有三种方案可选 1.在xml中进行显示配置 2.在java中进行显示配置 3.隐式的Bean发现机制和自动装配 今天学习的 第一种—— 在xml中进行显示配置 老规矩 先创建 C ...

  8. Spring实战之通过XML装配bean

    尽管Spring长期以来确实与XML有着关联,但现在需要明确的是,XML不再是配置Spring的唯一可选方案.Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了. ...

  9. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(9):通过XML装配Bean

    一.通过XML装配Bean 装配简易值 装配集合 命名空间装配(暂不测试) 二.测试例子 创建一个用户类:UserBean.java package com.xfwl.spring.assem; /* ...

随机推荐

  1. swift - 动画学习

    // //  ViewController.swift //  MapAnimation // //  Created by su on 15/12/10. //  Copyright © 2015年 ...

  2. Project Tango Explorer

    https://sensortower.com/android/ie/projecttango-google/app/project-tango-explorer/com.projecttango.t ...

  3. [翻译]Writing Component Editors 编写组件的编辑器

    Writing Component Editors  编写组件的编辑器   All common control editors (opened from a control's context me ...

  4. Java定时任务的实现

    本例依据Java自身提供的接口实现,通过监听器(Listener)和定时器(Timer)定时执行某个任务(Task).专业的开源工具可参考Quartz:http://www.opensymphony. ...

  5. Hibernate4获取Connection,ResultSet对象

    项目中需要一个json对象,封装的时候,需要数据的列名. 在jdbc里面,可以有个ResultMetaData对象获取列名字.因为我用的是hibernate,这个框架已经封装了很多,一般是难以获得re ...

  6. 利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)

    最近在利用SharePoint Server 2013的列表组织和存储数据,发现SharePoint列表原始不支持级联选择的功能. 谷歌百度一通以后,发现了很多通过代码实现的方案,利用第三方的插件sp ...

  7. csv文件乱码

    问题描述: 生成的csv文件,设置为UTF-8格式,在windows上用EXCEL打开的话会乱码,在linux上用vim或者cat打开查看正常:设置为GBK格式的话,在windows上用EXCEL打开 ...

  8. bootstrap-treeview中文API 以及后台JSON数据处理

    bootstrap-treeview   简要教程 bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件.该jQuery插件基于Twitter Bo ...

  9. JS-获取任意html节点属性

    获取节点属性:   确定获取

  10. epoll好文章

    https://www.cnblogs.com/apprentice89/p/3234677.html https://www.jianshu.com/p/aa486512e989 https://c ...