1、关于 使用传统标签还是 c- p- 命名空间定义的标签,

我的观点是能用  c- p- 命名空间定义的标签 就不用 传统标签(这样会比较简洁。。。

2、强依赖使用构造器注入,可选性依赖使用属性注入。

【 bean 的初始化】

<?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:c="http://www.springframework.org/schema/c"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

【声明简单的 bean 】

<!-- 创建一个简单的 bean(默认构造器),自动化命名 ID 默认为 soundsystem.SgtPeppers#0 -->
<bean class="soundsystem.SgtPeppers" /> <!-- 自定义 ID 非必要不使用 -->
<bean id="compactDisc" class="soundsystem.SgtPeppers" /> 【借助构造器注入初始化 bean
<!-- 构造器注入 bean 引用 方案一:<constructor-arg>元素 -->
<bean id="cdPlayer" class="soundsystem.CDPlayer">
<constructor-arg ref="compactDisc" />
</bean> <!-- 构造器注入 bean 引用 方案二:Spring 3.0 引入的 c-命名空间 需要额外加 XML 顶部声明 -->
<bean id="cdPlayer#0" class="soundsystem.CDPlayer" c:cd-ref="compactDisc" />
<bean id="cdPlayer#1" class="soundsystem.CDPlayer" c:_0-ref="compactDisc" /> <!-- 构造器注入字面值 方案一 <constructor-arg>元素 -->
<bean id="compactDisc#0"
class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
</bean> <!-- 构造器注入字面值 方案二 c-命名空间 -->
<bean id="compactDisc#1"
class="soundsystem.BlankDisc"
c:_0="Sgt. Pepper's Lonely Hearts Club Band"
c:_1="The Beatles" /> <!-- 装配集合 List Set 数组都可以使用 <list>和<set>标签 -->
<bean id="compactDisc#2"
class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
<constructor-arg><null/></constructor-arg>
</bean> <bean id="compactDisc#3"
class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
<constructor-arg>
<list>
<value>Sgt. Pepper's Lonely Hearts Club Band</value>
<value>With a Little help from My Friends</value>
<value>Lucy in the Sky with Diamonds</value>
</list>
</constructor-arg>
</bean> <bean id="NameOfASong" class="java.lang.String" />
<bean id="compactDisc#4"
class="soundsystem.BlankDisc">
<constructor-arg value="Sgt. Pepper's Lonely Hearts Club Band" />
<constructor-arg value="The Beatles" />
<constructor-arg>
<list>
<ref bean="NameOfASong" />
</list>
</constructor-arg>
</bean> </beans>

【设置 bean 属性】

类似于初始化 bean

<?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:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!-- 属性注入 -->
<!-- 强依赖使用构造器注入,可选性依赖使用属性注入 -->
<bean id="compactDisc" class="soundsystem.SgtPeppers" />
<bean id="cdPlayer#0"
class="soundsystem.CDPlayer">
<property name="compactDisc" ref="compactDisc" />
<!-- 需要强调,上面的属性必须要有 Setter方法 -->
</bean> <!-- 等价的 p 命名空间 -->
<bean id="cdPlayer#1"
class="soundsystem.CDPlayer"
p:compactDisc-ref="compactDisc" /> <!-- 注入字面量到属性 -->
<bean id="reallyBlankDisc"
class="soundsystem.BlankDisc">
<property name="title" value="Sgt. Pepper's Lonely Hearts Club Band" />
<property name="artist" value="The Beatles" />
<property name="tracks">
<list>
<value>...</value>
<value>....</value>
</list>
</property>
</bean> <!-- 等价的 p 命名空间, 无 法 用 它 来 装配 集合 -->
<bean id="reallyBlankDisc#0"
class="soundsystem.BlankDisc"
p:title="Sgt. Pepper's Lonely Hearts Club Band"
p:artist="The Beatles">
<property name="tracks">
<value>...</value>
<value>....</value>
</property>
</bean> <!-- 可取的方案 util-命令空间中的 <util:list>标签 -->
<util:list id="trackList">
<value>...</value>
<value>....</value>
</util:list> <bean id="reallyBlankDisc#2"
class="soundsystem.BlankDisc"
p:title="..."
p:artist="..."
p:tracks-ref="trackList" /> </beans>

Spring 之通过 XML 装配 bean的更多相关文章

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

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

  2. Spring实战3:装配bean的进阶知识

    主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expressio ...

  3. Spring实战2:装配bean—依赖注入的本质

    主要内容 Spring的配置方法概览 自动装配bean 基于Java配置文件装配bean 控制bean的创建和销毁 任何一个成功的应用都是由多个为了实现某个业务目标而相互协作的组件构成的,这些组件必须 ...

  4. Spring框架(3)---IOC装配Bean(注解方式)

    IOC装配Bean(注解方式) 上面一遍文章讲了通过xml来装配Bean,那么这篇来讲注解方式来讲装配Bean对象 注解方式需要在原先的基础上重新配置环境: (1)Component标签举例 1:导入 ...

  5. 第2章—装配Bean—通过XML装配Bean

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

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

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

  7. Spring装配Bean之XML装配bean

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

  8. Spring框架(2)---IOC装配Bean(xml配置方式)

    IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicat ...

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

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

随机推荐

  1. nodejs之路探寻

    在webpack配置中经常会发现 const path = require('path') 这是加载nodejs路径处理API,这个API主要包含下面三个方法 path.dirname(filepat ...

  2. boost数据结构any(很有用!)

    any是一种特殊的容器,它只能容纳一个元素,但这个元素可以是任意类型;    可以用any保存任何类型,在任何需要的时候取出它;    这种功能和shared_ptr<void>类似,但是 ...

  3. Docker入门与应用系列(九)图形界面管理之Portainer

    介绍 Portainer是一个开源.轻量级Docker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群,支持最新版Docker和Swarm模式.官方文档https://p ...

  4. MVC [Control与View交互]

    <1> Home控制器 using System; using System.Collections.Generic; using System.Data; using System.Da ...

  5. 会话技术Cookie&Session

    1.会话技术概述 从打开浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话.会话技术用于记录本次会话中客户端的状态与数据. 会话技术分为Cookie和Session: Cookie:数据存储 ...

  6. android 127.0.0.1/localhost connection refused,在模拟器上应该用10.0.2.2访问你的电脑本机

    调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlStrin ...

  7. 慎用System.Web.HttpContext.Current

    每当控制流离开页面派生的Web表单上的代码的时候,HttpContext类的静态属性Current可能是有用的. 使用这个属性,我们可以获取当前请求(Request),响应(Response),会话( ...

  8. linux的%用法

    转自:http://blog.csdn.net/wu020708/article/details/52387473 linux (%和%%)(#和##)贪婪匹配规则 先看一个案例,提取文件名: fil ...

  9. mybatis循环map

    一.循环key <foreach collection="map.keys" item="key" separator="and"&g ...

  10. mongodb3.0+ 版本内置数据压缩

    mongodb3+版本之后支持zlib和snappy. 创建压缩的集合 db.createCollection( "email", {storageEngine:{wiredTig ...