通过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. CString->char*.,char*->CString,char*->LPCTSTR

    CString->char* CString strSource;//宣告CString char* charSource; //宣告char* 法1: charSource = (char*) ...

  2. 浅析互联网系统和传统企业IT系统的异同

    前不久,一则中行宕机的消息引起了网上IT人士的热议.其中对于大型机或者RISC系统的稳定性可靠性的质疑更是热议中的主流声音,很多人拿现在互联网系统做对比,认为大型机所谓的几个9都是吹出来的云云.在这里 ...

  3. EBS 并发程序运行信息

    --并发程序运行信息SELECT REQUEST_ID,       PROGRAM,       actual_start_date 开始日期,       ACTUAL_COMPLETION_DA ...

  4. .Net工程师面试笔试宝典

    .Net工程师面试笔试宝典 传智播客.Net培训班内部资料 http://net.itcast.cn 这套面试笔试宝典是传智播客在多年的教学和学生就业指导过程中积累下来的宝贵资料,大部分来自于学员从面 ...

  5. nginx 配置中的if判断

    正则表达式匹配:     ==:等值比较;     ~:与指定正则表达式模式匹配时返回“真”,判断匹配与否时区分字符大小写:     ~*:与指定正则表达式模式匹配时返回“真”,判断匹配与否时不区分字 ...

  6. [Erlang22]如何按规则位数输出数字

      需求:把一个数字指定长度输出 例如:  1 00000001 12 00000012 1203 00001203 123456789 123456789 1234567 01234567 方法一: ...

  7. [JAVA]java复制文件的4种方式

    尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...

  8. 2.C#WebAPI设置路由和参数1

    1.当我们创建WebApi的时候我们的项目下的Contorls文件夹下的ValuesController文件下会出现这么几个方法: // GET http://程序ip:程序端口/api/values ...

  9. django drf 自定义jwt用户验证逻辑

    新建Backend类 from django.contrib.auth.backends import ModelBackend from django.shortcuts import render ...

  10. 巧用网页开发者工具F12 审查、修改元素、去除广告、屏蔽遮罩

    巧用网页开发者工具F12 审查.修改元素.去除广告.屏蔽遮罩 每当打开一个网页的时候,是否为页面有很多广告而烦恼:是否为要操作页面(例如观看超清视频),请先注册登录等等事情而麻烦:是否对网页加锁的视频 ...