您的位置:首页 > 编程语言 > Java开发

Spring学习笔记<二>

2015-12-16 16:06 429 查看
Spring的核心容器实现IoC,是一种无侵入式的框架。

Bean 描述Java的软件组件模型
1.Bean的标识(id ,name)
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User">
<!-- 配置Bean开始-->
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
</bean> 
</beans>
*************************************************
使用name属性指定Bean的id
<beans>
<!-- 定义一个Bean,name是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean name="User" class="cn.zlw.action.User">
<!-- 配置Bean开始-->
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
</bean> 
</beans>
*************************************************
id属性指定Bean的id是一个比较好的方式
一个Bean一般只有一个id,如果一个Bean有超过一个的id,那么,另外的那些id可以认为是这个Bean的别名

2.Bean的类(class)
class属性指明了Bean的来源,即Bean的实际路径。

3.Singleton的使用
Bean可以被定义两种部署模式的一种:singleton或non-singleton(prototype)。Spring默认为singleton模式。

3.1 Bean定义为singleton模式,只有一个共享的实例存在,所有对这个Bean的请求都会返回这个唯一的实例。
3.2 Bean定义为non-singleton模式,每次请求都会创建一个新的Bean实例,类似new的操作。

1)Bean默认定义为singleton模式的配置文件
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User">
<!-- 配置Bean开始-->
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
</bean> 
</beans>
2)Bean显示定义singleton模式的配置文件
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User" singleton="true">
<!-- 配置Bean开始-->
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
</bean> 
</beans>
3)Bean定义为non-singleton模式的配置文件
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User" singleton="false">
<!-- 配置Bean开始-->
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
</bean> 
</beans>
4.Bean的属性
在Spring中,Bean的属性值有两种注入方式:setter的依赖注入和基于构造函数的依赖注入。

在定义Bean时,除了直接指定属性值外 ,还可以参考配置文档中定义的其他Bean

5.对于null值的处理
Bean的属性配置中,遇到null值得问题,两种处理方式:
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User">
<!-- 配置Bean开始-->
<property name="uname">
<value>null</value>

</property>
</bean> 
</beans>
*****************************************************
<beans>
<!-- 定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源-->
<bean id="User" class="cn.zlw.action.User">
<!-- 配置Bean开始-->
<property name="uname">
<null/>

</property>
</bean>
</beans>

这两种处理方式的功能都与Bean中设定this.uname = null等价。

6.使用依赖depends-on
Bean的depends-on属性可以用来初始化使用这个Bean之前,强制执行一个或多个Bean的初始化。

<bean id="User" class="cn.zlw.action.User" depends-on="date">
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
<!-- 指定Bean的一个依赖-->
<property name="date">
<ref bean="date"/>
</property>
</bean> 
<bean id="date" class="java.util.Date"/>

7.一个较为完整的Bean配置文档
<beans>
<!--定义一个Bean,id是这个Bean的唯一标识,class指出这个Bean的来源,singleton指定这个Bean是否是单例模式,depends-on指定这个Bean初始化前,强制初始化date -->
<bean id="User" class="cn.zlw.action.User" singleton="true" depends-on="date">
<property name="uname">
<value>DreamDemo</value>

</property>
<property name="uage">
<value>22</value>
</property>
<!-- 指定Bean的一个依赖-->
<property name="date">
<ref bean="date"/>
</property>
</bean> 
<bean id="date" class="java.util.Date"/>
</beans>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 框架 spring bean ioc