Spring的基本用法(二)

本文介绍了Spring框架中Bean的管理机制,包括Bean的作用域、配置依赖的方式以及Bean与JavaBean的区别。详细阐述了singleton和prototype作用域的特点,并展示了如何通过属性和构造器参数进行依赖注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、容器中bean的作用域
Spring支持如下5种作用域:

这里写图片描述

比 较常用的是singleton和prototype两种,对于singleton作用域的Bean,每次请求该Bean都将获得相同实例。容器负责跟踪 Bean实例的状态,负责维护Bean实例的生命周期行为;如果是prototype作用域的bean,容器不会跟踪实例,也不会维护bean实例的状 态。
如果不指定bean的作用域,默认使用singleton作用域。
request和session作用域只在Web应用 中才有效,并且必须在Web应用中增加额外配置才会生效。为此我们需要采用Listener配置或采用Filter配置才能使用。如果Web应用直接使用 Spring MVC作为MVC框架,即用SpringDispatcherServlet或DispatcherPortlet来拦截所有用户请求,则无需这些额外的 配置,因为DispatcherServlet或DispatcherPortlet已经处理了所有和请求有关的状态处理。

二、Bean配置依赖的方式
根据注入方式的不同,Bean的依赖注入通常表现为两种:

①属性:通过<property...>对应值注入
②构造器参数:通过<constructor-arg...>对应构造注入
由于Java实例的属性值可以是基本类型值、字符串类型值,还可以是其他Java实例,也可以是容器中其他的Bean实例,甚至是Java集合、数组等,所以Spring允许通过如下元素为Bean实例的属性指定值:
value、ref、bean、list、set、map及props
例子:<property name="integerProperty" value="1"/>
     <property name="axe" ref="steelAxe"/>//Spring容器中另一个bean id
     <list><value>小学</value><value>中学</value><value>大学</value></list>
     <map><entry key="数学“ value=”87“/><entry key="英语“ value=”87“/></map>
     <map><entry key="原始社会“ value-ref=”stoneAxe“/><entry key="农业社会“  value-ref=”stoneAxe“/></map>
     <props><prop key="血压">正常</prop><prop key="身高">正常</prop></props>
     <set><value>普通字符串</value><bean class="XXX"/><ref local=”stoneAxe“/></set>
除 了显示指定依赖关系外,还可以设置自动装配注入合作者bean<autowire>(单个bean)<default- autowire>(所有bean),autowire可接受的值 有:no,byName,byType,constructor,autodetect

这里写图片描述

三、Spring的Bean和JavaBean
Spring 容器对Bean没有特殊要求,甚至不要求该Bean像标准JavaBean(必须为每个属性提供get和set方法),任何Java实例、Java组件都 被看成Spring中的Bean,虽然Spring对Bean没有特殊要求,但还是建议Bean应满足以下几个规则:
尽量为每个Bean实现类提供无参构造函数
接受构造注入的Bean提供相应的构造方法
接受设置注入的Bean提供相应的setter方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值