第2章—装配Bean—通过XML装配Bean
通过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的更多相关文章
- Spring装配Bean之XML装配bean
在Spring刚出现的时候,XML是描述配置的主要方式,在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML的同义词. 现在随着强大的自动化配置和Java代码的配 ...
- Spring基础使用(一)--------IOC、Bean的XML方式装配
基础 1.xml文件基础格式: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns=&q ...
- 利用jaxb实现xml和bean的相互转换
1.使用jar包生成xsd文件 java -jar trang.jar a.xml a.xsd xml格式 生成的xsd文件 2.使用xjc命令生成bean文件 xjc a.xsd 生成的相关bean ...
- XML转Bean
XML转Bean有很多方式,我使用的是xtream方式实现xml与bean的互转. 下面是简单的xml转bean /** * XML转换成bean * @param obj * @return yuy ...
- Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配
一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...
- spring学习总结——装配Bean学习三(xml装配bean)
通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...
- SpringInAction--自动化装配Bean(显示装配之xml配置)
Spring在配置时候有三种方案可选 1.在xml中进行显示配置 2.在java中进行显示配置 3.隐式的Bean发现机制和自动装配 今天学习的 第一种—— 在xml中进行显示配置 老规矩 先创建 C ...
- Spring实战之通过XML装配bean
尽管Spring长期以来确实与XML有着关联,但现在需要明确的是,XML不再是配置Spring的唯一可选方案.Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了. ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(9):通过XML装配Bean
一.通过XML装配Bean 装配简易值 装配集合 命名空间装配(暂不测试) 二.测试例子 创建一个用户类:UserBean.java package com.xfwl.spring.assem; /* ...
随机推荐
- Swift实现UIKit Dynamic动画
iOS7引入了UIKit Dynamics,可以帮助开发者开发出更接近真实世界的动画效果.之前,用户如果要做出这样的效果,需要话很多的时间在物理计算和Core Animation上.现在,所有的一切都 ...
- (字符串 KMP)Blue Jeans -- POJ -- 3080:
链接: http://poj.org/problem?id=3080 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88230#probl ...
- android虚拟机的垃圾收集
Dalvik :http://zh.wikipedia.org/wiki/Dalvik%E8%99%9A%E6%8B%9F%E6%9C%BA ART :http://source.android.co ...
- 试题 G: 外卖店优先级 第十届蓝桥杯
试题 G: 外卖店优先级时间限制: 1.0s 内存限制: 512.0MB 本题总分: 20 分[问题描述]“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ∼ N.每家外卖店都有一个优先级,初始时 ...
- 咏南CS开发框架新的界面风格
咏南CS开发框架新的界面风格 这种风格完全和WINDOWS桌面一样,符合用户的操作习惯. 我的桌面的图标和WINDOWS桌面一样分为二类:1)快捷方式 2)文件夹. 如果快捷方式较多,看得人眼花缭乱 ...
- Python入门基础学习 一
Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...
- Selenium WebDriver之JavaScript
WebDriver提供了方法来同步/异步执行JavaScript代码,这是因为JavaScript可以完成一些WebDriver本身所不能完成的功能,从而让WebDriver更加灵活和强大. 本文中所 ...
- [node.js]express+mongoose+mongodb的开发笔记
时间过得很快,6月和7月忙的不可开交,糟心的事儿也是不少,杭州大连来回飞,也是呵呵. 希望下个阶段能沉浸下来,接着学自己想学的.记一下上几周用了几天时间写的课设.因为课设的缘故,所以在短时间里了解下e ...
- [Oracle]Oracle部分函数
1.nvl(a,b) 若a为null,则b 2.to_char(date,'YY-MM-DD') 按格式将date类型转为字符串 to_date('1999/1/1','YY-MM-DD') 将字符串 ...
- C#计算两个日期之间相差的天数
说明:如:1900-01-01与1900-01-01之间算一天 private static int DateDiff(DateTime dateStart, DateTime dateEnd) { ...