欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring之对bean对象的管理03

程序员文章站 2022-05-23 14:58:29
...

Spring之对bean对象的管理03

创建bean的三种方式

第一种 使用默认构造函数创建

在spring的配置文件中使用bean标签,配以id和class属性之后.且没有其他的属性和标签时,采用的就是默认构造函数创建bean对象,如果此时类中没有默认的构造函数,则对象无法创建.

    <bean id="accountService" class="cn.itcast.service.impl.AccountServiceImpl"></bean>
 

第二种 使用普通工厂中的方法创建对象

使用某个类中的方法创建对象

通过一个bean标签配置一个工厂类然后通过工厂类的唯一标识给factory-bean属性赋值,并且将方法名给fatory-method属性赋值来进行创建对象

<bean id="instanceFactory" class="cn.itcast/factory.InstanceFactory"></bean>
<bean id="accountService" factory-bean="instanceFactory" fatory-method="getAccpuntService" ></bean>

第三种 使用普通工厂中的静态方法创建对象

<bean id="accountService" class="cn.itcast.factory.StaticFactory" fatory-method="getAccpuntService"></bean>

 

bean对象的作用范围

bean标签的scope属性

作用:用于指定bean的作用范围

取值:

singleton 单例的(默认值) 常用

protorype 多例 每次都会创建一个新的对象 常用

request 作用为web应用的请求范围

session 作用于web应用的会话范围

global - session 作用于集群环境的会话范围(全局会话范围)

bean对象的生命周期

单例对象

出生:当容器创建时对象出生

活着:只要容器还在,对象一直活着

死亡: 容器销毁,对象死亡

多例对象

出生:当使用对象时spring框架为我们创建

活着:对象只要在使用过程中就一直活着

死亡: 当对象长时间不用时,没有其他对象引用由java的垃圾回收机制回收

spring中的依赖注入

依赖关系的维护称为依赖注入

依赖注入:

能注入的数据:

基本类型和String

其他bean类型(在配置文件中或者注解配置过的bean)

复杂类型/集合类型

注入的方式

使用构造方法提供

标签 constructor-arg

出现在bean标签的内部

标签中的属性

type:用于指定要注入的数据的数据类型,该数据类型也是构造函数中某个参数的类型

index:用于给指定要注入的数据给构造函数中指定索引位置的参数赋值

name:用于制动构造函数中指定名称的参数赋值 常用的

value :用于给基本类型和String类型提供数据

ref:用于给其他bean类型数据 指定的时ioc容器中出现过的bean对象

优势:

在获取bean对象时,诸如数据时必须的操作,否则对象无法创建成功

弊端:

改变了对bean对象的实例化方式,是我们在创建对象时,如果用不到这些数据也必须提供

使用set方法提供 (更常用)

标签:property

出现在bean标签内部

标签的属性

name:用于指定注入时调用的set方法名称

value :用于给基本类型和String类型提供数据

ref:用于给其他bean类型数据 指定的时ioc容器中出现过的bean对象

优势:

创建对象时没有明确的限制,可以直接使用默认的构造方法

弊端:

如果某个成员有值,贼set方法无法保证一定注入