Bean管理(1)


基于XML配置文件创建对象

  • 创建对象User
1
<bean id="nayuki" class="bean.User"></bean>

基于XML方式注入属性

set方式注入

  • 设置属性name的set方法
1
2
3
<bean id="nayuki" class="bean.User">
<property name="name" value="Nayuki"></property>
</bean>

构造函数参数注入

  • 设置带参数的构造函数
1
2
3
<bean id="nayuki" class="bean.User">
<constructor-arg name="name" value="Nayuki"></constructor-arg>
</bean>

p名称空间注入

1
<bean id="nayuki" class="bean.User" p:name="Nayuki"></bean>

注入null值和特殊符号

null值

  • property里不要写value
1
2
3
4
5
<bean id="nayuki" class="bean.User">
<property name="name">
<null/>
</property>
</bean>

特殊符号

  • 把特殊符号按照格式写进CDATA里
1
2
3
4
5
6
7
<bean id="nayuki" class="bean.User">
<property name="name">
<value>
<![CDATA[<<Nayuki>>]]>
</value>
</property>
</bean>

注入Bean属性

外部注入

  • 创建Service类和Dao类
1
2
3
4
<bean id="userService" class="service.UserService">
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="dao.UserDao"></bean>

内部注入

  • 创建Music类和Type类
1
2
3
4
5
6
7
8
<bean id="music" class="bean.Music">
<property name="name" value="云烟成雨"></property>
<property name="type">
<bean id="type" class="bean.Type">
<property name="name" value="Chinese"></property>
</bean>
</property>
</bean>

级联赋值

不用get方法时

  • 创建Music类和Type类
1
2
3
4
5
6
7
<bean id="music" class="bean.Music">
<property name="name" value="云烟成雨"></property>
<property name="type" ref="type"></property>
</bean>
<bean id="type" class="bean.Type">
<property name="name" value="Chinese"></property>
</bean>

使用get方法时

  • 创建Music类和Type类

  • Music类中的Type属性要生成对应的get方法

1
2
3
4
5
6
<bean id="music" class="bean.Music">
<property name="name" value="云烟成雨"></property>
<property name="type" ref="type"></property>
<property name="type.name" value="Chinese"></property>
</bean>
<bean id="type" class="bean.Type"></bean>

注入集合属性

数组类型属性

  • 创建Student类
1
2
3
4
5
6
7
8
<bean id="student" class="bean.Student">
<property name="course">
<array>
<value>计算机组成与原理</value>
<value>计算机网络</value>
</array>
</property>
</bean>

List类型属性

  • 创建Student类
1
2
3
4
5
6
7
8
<bean id="student" class="bean.Student">
<property name="course">
<list>
<value>计算机组成与原理</value>
<value>计算机网络</value>
</list>
</property>
</bean>

Map类型属性

  • 创建Student类
1
2
3
4
5
6
7
8
<bean id="student" class="bean.Student">
<property name="course">
<map>
<entry key="1" value="计算机组成与原理"></entry>
<entry key="2" value="计算机网络"></entry>
</map>
</property>
</bean>

Set类型属性

  • 创建Student类
1
2
3
4
5
6
7
8
<bean id="student" class="bean.Student">
<property name="course">
<set>
<value>计算机组成与原理</value>
<value>计算机网络</value>
</set>
</property>
</bean>

注入Bean集合属性

  • 创建Course类和Student类
1
2
3
4
5
6
7
8
9
10
<bean id="computer" class="bean.Course"></bean>
<bean id="network" class="bean.Course"></bean>
<bean id="student" class="bean.Student">
<property name="course">
<list>
<ref bean="computer"></ref>
<ref bean="network"></ref>
</list>
</property>
</bean>

共享list集合

1
2
3
4
5
6
7
<util:list id="courses">
<value>计算机组成与原理</value>
<value>计算机网络</value>
</util:list>
<bean id="student" class="bean.Student">
<property name="course" ref="courses"></property>
</bean>