Spring之对bean对象的管理03
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方法无法保证一定注入
上一篇: spring2.5+atomikos分布式事务配置
下一篇: Python解析最简单的验证码
推荐阅读
-
Spring对bean对象的生命周期管理
-
Http请求封装(对HttpClient类的进一步封装,使之调用更方便。另外,此类管理唯一的HttpClient对象,支持线程池调用,效率更高)
-
聊聊spring之bean对象的实例化过程
-
【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3
-
【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3
-
Spring的bean管理(注解创建对象)
-
JavaWeb学习-Spring框架-3-Spring配置详解之Bean元素和三种对象的创建方式
-
Spring之对bean对象的管理03
-
Spring之Bean对象的初始化和销毁方法
-
三种实例化bean方式——Spring对bean的管理(一)