在Spring IOC中,我们会经常使用Bean元素,下面简单概述一下。
1.Spring Bean 基本应用
由Spring管理的所有对象都称之为Bean.,自己创建的类
假如需要由spring管理,首先对这个类进行配置方式
1)基于xml进行配置:需要在spring的核心配置文件中使用bean标签对bean类型进行声明,借助id或name属性指定的bean的一个标识.通过class属性指定bean的具体类型(必须写全类名);
2)基于注解进行配置(内容较多,后期会整理)
2.Bean 对象的构建
Spring 中Bean对象的构建,提供了如下几种方式:
1) 直接通过构造方法
2) 通过类的静态工厂方法(例如Calendar的getInstance方法)
3) 通过实例的实例方法构建对象(例如通过Calendar对象的getTime方法获取data对象)
3.Bean 对象的作用域
在Spring容器中管理的Bean对象,可以在声明时通过scope属性或
相关注解指定其作用域,最常用是singleton,prototype.其含义如下
1) singleton (这个作用域标识的对象具备全局唯一性):系统默认
2) prototype(这个作用域标识的对象每次获取都会创建新的对象)
4.Bean 对象的生命周期
在Spring框架应用中,所有的的Bean对象都有生命周期,所谓Bean对象的生命周期是指Bean对象的创建,初始化,服务,销毁的这个过程.
在spring配置文件中可以通过Init-method,destory-method属性指定bean的生命周期方法.例如:
<bean id="helloService"
class="beans.HelloService"
scope="prototype"
init-method="init"
destroy-method="destory"/>
在Spring应用由Spring创建的对象是否由spring销毁,还取决于Bean对象的作用域的配置.例如
1) singleton作用域的对象可以在容器关闭时销毁
2) prototype作用域的对象可以由容器创建对象,初始化对象,但不负责销毁.
5.Bean 对象的延迟加载
在spring框架应用,容器初始化时候,默认会构建所有由spring管理的Bean对象.
但假如这些对象长时间不使用还占用着内存就会造成一定的资源浪费.为了解决
这个问题,spring中提供了一种延迟加载机制.通过这种机制来提高系统资源的有效使用.
Spring中的延迟加载需要通过bean元素中lazy-init属性或beans元素的default-lazy-init="true"属性进行设置.两者应用的不同点:
1) lazy-init: 应用在bean标签中用于指定这个bean的加载策略.
2) default-lazy-init:应用在beans标签中用于指定所有bean的加载策略.
6.Spring Bean 依赖管理
实际项目会存在很多个Bean对象,这些对象之间会存在一定依赖关系,当某个Bean对象依赖于其它Bean对象,可以通过spring按照一定的规则(例如按类型或者按名字),进行依赖查找然后进行值的注入。在Spring中对Bean属性赋值的过程我们称之为依赖注入。注入值的方式有两种,set注入和构造注入。set注入式通过对象的set方法为对象属性赋值,构造注入为通过bean对象的构造方法为属性注入值.
Spring 应用中还可以按照一定规则自动为对象属性注入值,此机制实现的可以借助Bean标签中的autowire属性进行配置.
1) default : 不执行自动装配(默认)
2) byName: 按属性名对应的set方法名进行自动装配
3) byType:按属性类型对应的set方法相关参数类型进行装配
4) constructor:按构造方法参数类型进行装配
本文章只是稍作概述,并无深入说明,后期我会把个别的点按照个人理解进行详细的说明一下,本人新人,请大家多多提意见。