SSH

来源:互联网 发布:php array remove key 编辑:程序博客网 时间:2024/05/29 19:17

Spring

Spring是Java中协调对象间互相调用的解决方案,可以让对象之间的调用解除紧耦合,方便编程,提高程序的可伸缩性。

耦合性:对象之间的依赖性。对象之间的依赖性越高,维护成本越高。

控制反转(Inverse Of Control,IOC):将BeanFactory框架化之后,对象的生成有框架参考配置文件进行,和具体实现类的源代码无关,将对象生成的控制权由修改不方便的源代码转变为修改相对方便的配置文件和几乎不进行修改的框架进行

applicationContext.xml

<bean id="ildao" class="com.yangzx.spring.dao.LoginDao"></bean><!-- 属性注入 --><!-- property的name属性的值是LoginAction中属性的名称 --><!-- local的值必须和对象的值一致,即 local的value=id的value --><!--<bean id="loginAction" class="com.yangzx.spring.action.LoginAction"><property name="ildao"><ref local="ildao"/></property></bean>--><!-- 构造函数注入 --><!-- constructor-arg index属性:参数编号 type属性:参数类型 ref属性:实例化对象 --><bean id="loginActionWithConstructor" class="com.yangzx.spring.action.LoginActionWithConstructor"><constructor-arg index="0" type="com.yangzx.spring.idao.ILoginDao" ref="ildao"></constructor-arg></bean>

属性注入:不需要知道属性类型,必须知道属性名称。

构造函数注入:不需要知道参数名称,必须知道参数的序号和类型。

Bean的初始和消亡函数及对象的延时加载

applicationContext.xml

<bean id = "query" class="dao.Query" init-method="init" destroy-method="destroy" lazy-init="false"></bean>
Query.java

public void init() {/* * code * */}public void destroy(){/* * code * */}

实例化query对象时,构造函数调用之后,自动调用init函数,该对象消亡时,自动调用destroy函数。初始化函数和消亡函数不能有参数。非延时加载时,在载入applicationContext.xml文件时,该对象就被实例化了,如果延时加载,只有在调用时才将对象实例化,默认情况下,对象为非延时加载,在开发过程中,除了数据量很大,一般不选择延时加载。


0 0
原创粉丝点击