Spring框架对于Bean类的实例化、值的注入、依赖关系的注入等,都是由Spring的管理容器和配置文件自动完成的。
Spring Bean也称为组件,任何一个JavaBean类都可以作为Spring Bean,但Spring Bean并不要求一定要严格遵循Java Bean规范。Spring中的Bean可以是任意的Java对象,如数据库连接池。
Spring Bean通过Spring容器对其进行实例化、值的注入,以及依赖关系注入等方面管理,还需要对Bean进行定义,即将它定义为一个Spring Bean。
配置Bean参数:
在XML文件中,使用bean标签来定义Spring Bean。如:
<bean id="Company" class="springbean.Company" scope="singleton" init-method="postConstuct" destroy-method="preDestroy">
...
</bean>
参数说明:
1、Scope——值为singleton或prototype,用来指定这个Bean是否使用单实例。
2、init-method——值为方法名,代表Bean的一个方法
此方法的执行时机是在实例化该Bean之后,将对象返回到应用层之前。这个方法常用来做资源的初始化工作。
3、destroy-method——值为方法名,代表Bean的一个方法
此方法在Bean即将被销毁之前执行,主要用来进行资源的释放。
配置Bean属性:
基本类型属性的配置,如int、String类型。这些类型的属性值可以通过value元素来指定。
<property name="name" value="明星公司"/>
<property name="age" value="20"/>
value元素的值应为基本类型,如int、float、String等,Spring 会对类型作出判断,并进行正确的转换。
引用属性的配置,例如对其他Bean的引用。这种类型的属性应通过ref元素来指定。ref元素指定了属性对其他Bean的依赖关系。根据这个依赖关系,容器在运行时会对ref属性所指定的Bean进行创建。
<property name="address" ref="Address"/>
<!--Address Bean-->
<bean id="Address" class ="springbean.Address">
<property name="city" value="北京"/>
<property name="street" value="西城区南礼路">
</bean>
集合类型属性的配置,通过集合元素来指定。
Spring支持集合类型的Bean属性。这里的集合类型可以是List、数组、Set、Map等类型。
<property name="employees">
<list>
<value>张三</value>
<value>张四</value>
<value>张五</value>
<value>张五</value>
</list>
</property>
使用依赖注入——两种方法 设值注入、构造器注入
设值注入,通过Bean的set方法来完成,因此,如果在XML中定义了Bean的属性值,并且使用设值注入方式,那么必须在Bean类中提供属性的set方法。
Spring设值注入的过程就好比我们使用传统方式创建一个对象时,先通过new关键字调用无参构造器来产生对象,再通过调用对象的set方法来设值属性值。
构造器注入,Spring构造器注入的过程就好比我们使用传统方式创建一个对象时,通过new关键字直接调用带参数构造器来产生对象,将对象属性值通过参数来设置。
需要在XML文件中使用constructor-arg元素来指定属性值。
<bean id="Company" class="springbean.Company">
<constructor-arg type="java.lang.String" index="0">
<value>明星公司<value>
</constructor-arg>
<constructor-arg>
<value>20</value>
</constructor-arg>
</bean>
Spring框架自动管理Bean的实例化、值注入和依赖关系。Bean可以是任意Java对象,通过XML配置文件定义其生命周期,包括单例(singleton)或多例(prototype)模式。配置参数如`init-method`和`destroy-method`用于初始化和销毁操作。属性配置包括基本类型、引用类型和集合类型。依赖注入有两种方式:设值注入(通过set方法)和构造器注入(通过构造函数参数)。
3090

被折叠的 条评论
为什么被折叠?



