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. linux 格式化u盘

    在单位用U盘安装的archlinux,安装完后,U盘就没再管它,后来女朋友要用U盘,我就甩了一句,在你那windows的机器下格式化一下那个U盘就可以用了,谁知道,就这一句话,好好的2GU盘变300多 ...

  2. 【BZOJ】3315: [Usaco2013 Nov]Pogo-Cow(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3315 果然自己太弱. 想不出dp方程啊.. 其实,以后记住...与上一个状态或下一个状态有关,,可以 ...

  3. java编译、编码、语言设置

    下面这两行加入,环境变量:特别是gradle在编译文件中含有中文时会遇到一些问题: JAVA_TOOL_OPTIONS -Dfile.encoding=UTF-8 -Duser.language=en ...

  4. Django Admin后台管理模块的使用

    Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django ...

  5. Laravel的学习网站推荐

    Laravel官网 网址是:https://www.laravel.com,里面有优质的教程和文档 只不过是英文的. Laravel学院 网址是:http://laravelacademy.org/, ...

  6. TypeScript 基本类型(一)

    1.boolean 布尔值 true/false let isDone: boolean = false; 2.number 数字:和JavaScript 一样,TypeScript 里的所有数字都是 ...

  7. Plug组件(不断跟新)

    这个plug组件不知到底是什么东西,不知何com组件什么区别 #include <iostream> #include <plug/plug.h> #include " ...

  8. 面试10大算法汇总——Java篇

    问题导读 1 字符串和数组 2 链表 3 树 4 图 5 排序 6 递归 vs 迭代 7 动态规划 8 位操作 9 概率问题 10 排列组合 11 其他 -- 寻找规律 英文版 以下从Java角度解释 ...

  9. SDN开发过程中遇到的一些问题总结

    我用的是ryu控制器,用Mininet作为网络系统平台. 当启动控制器的时候如果提示:unsupported version 0x1. if possible, set the switch to u ...

  10. jQuery初始化$(function() { }

    $(document).ready(function () { }//没有双引号 $(function() { }