Spring学习笔记<二>

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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值