Spring之bean定义

Spring以IoC、AOP为主要思想,其中IoC,Inversion of Control 指控制反转或反向控制。在Spring框架中我们通过配置创建类对象,由Spring在运行阶段实例化、组装对象。AOP,Aspect Oriented Programming,面向切面编程,其思想是在执行某些代码前执行另外的代码,使程序更灵活、扩展性更好,可以随便地添加、删除某些功能。Servlet中的Filter便是一种AOP思想的实现。

Bean标签的常用属性

(1)id属性:用于指定配置对象的名称,不能包含特殊符号。
(2)class属性:创建对象所在类的全路径。
(3)name属性:功能同id属性一致。但是在name属性值中可以包含特殊符号。
(4)scope属性
    singleton:默认值,单例
    单例模式下,在程序下只有一个实例。非单态模式下,每次请求该Bean,都会生成一个新的对象。
    prototype:多例
    request:创建对象后将对象存放到request域
    session:创建对象后将对象存放到session域
    globalSession:创建对象后将对象存放到globalSession域
init-method="init" 始化调用了init方法
destroy-method="destroy" 销毁时调用了init方法

spring Bean的作用域:scope="singleton"(默认,单例,生成一个实例)
单例模式,默认在程序初始化的时候实例化(lazy-init=”false”)
spring Bean的作用域:scope="prototype"(多线程, 生成多个实例)
prototype:getBean的时候才是实例化
lazy-init 只对单例模式起作用,对prototype不起作用(因为prototype默认就不是程序初始化的时候实例化的)
<bean id="gardenerClient" class="com.minipay.gamesdk.standalone.service.GardenerClientService"  init-method="init" scope="singleton">
     <property name="mainBusinessId" value="3"/>
     <property name="gardenerConfigService" ref="gardenerConfigService"></property>
     </bean>
------------------------------------------------------------------------------
name是指GardenerClientService类中的参数,也既GardenerClientService类中有一个属性名叫mainBusinessId的属性,而value是为这个属性名为mainBusinessId的指定值,把它当作参数传进GardenerClientService中

name是指GardenerClientService类中的参数,也既GardenerClientService类中有一个GardenerConfigService类型名叫gardenerConfigService的对象,而ref是当前xml文件中叫做gardenerConfigService的这个bean,把它当作参数传进GardenerConfigService中

--------------------------------------------------------------------------
ref属性:查找当前配置文件里的bean

ref标签有3种属性
<ref bean=""/>  :查找全局中的bean。即可以查找其他xml配置文件的bean,优先从当前配置文件寻找
<ref local=""/>   :查找当前配置文件中bean,等同于ref属性。local属性值必须同目标bean的id属性值相同
<ref parent=""/>:指定其依赖的父JavaBean定义
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章