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>
来源:https://www.cnblogs.com/xkxf/p/7149031.html