IOC控制器,又称反转控制器,意思是在使用过程中才知道用哪个类以及类里的属性。
Spring是在WEB应用程序中使用的一个框架,它依据的是applicationContext.xml配置文件,在程序中建立一个BeanFactory的工厂,在程序中使用到applicationContext中所定义的类的时候,通过BeanFactory进行获取,从而达到反转控制(依赖注入)的效果。
1【ss整合】
Sprint + Struts 结合的时候,spring主要用来进行Action的注入配置,
确定具体的Action使用的类,在这个时候Struts的配置中有关Action的地
方可以直接使用Spring中配置的bean的ID,[延续使用类名效果是相同的]
2【spring注入管理】
注入除了可以控制Action的具体实现类,还可以/还用于 给Action注入数
据库操作类 ,直接使用ado接口操作数据,ado实现类通过spring注入。
没有Hibernate的时候,dao里面的dbcp、connection都可以[一般都通过spring
]注入
3【spring 进行事务处理】
Spring自己提供了 Sql Template 可以直接进行数据库操作与实务处理。
4【ssh】
Spring+Hibernate的时候,Hibernate中的sessionfactory作为spring中的
一个普通的被注入的bean而存在。
------------------------------------applicationContext.xml配置-------------------------------------
基本配置项<bean></bean>
<bean>
<!--
1 autowire 属性 构造/注入方式
no --- 本类如何构造 ----- 使用无参构造方法
autodetect --- 自动检测 -------- 先使用 constructor 失败后,在使用 byType
constructor ----使用构造方法 ----- 使用提供的属性值按顺序塞给constructor,
byType --- 使用类型匹配 ----- 使用提供的属性值按顺序及类型
byName --- 使用属性名称匹配----- 使用提供的属性名称
2 depengency-check 属性 依赖检查,检查注入的属性
simple 检查基本数据类型[int long char.....]与 String
objects 对象,我们定义或者第三方定义的Bean
all 检查所有
none 不检查
检查失败会抛出异常:.....DependencyException
3 id 在spring中唯一标示类、对象
4 name 在spring中类、对象的名字--别名的时候使用 ---byName
5 class 在spring中类、对象的实现class
6 singleton 单例,用来表明在程序中是否使用同一个实例:--JdbcTemplete 、Action、Hibernate
的时候,一定要求使用同一个实例的。
缺省配置为 singleton = "true" 如果非单例模式,需要改为 false
init-method="Bean_Method"
destroy-method="Bean_Method"
-->
<property >
<!--
1 name 属性
该属性的名称,与bean中的property名称一致
2 value 属性
如果bean的属性为基本数据类型或者String的话,使用value指定取值
3 ref 属性
如果bean的属性为对象的话,对象需要被构造,构造的对象在spring中进行配置
ref 的值为该配置项的id/name
<property name="" value="" />
<property name="">
<value>______</value>
</property>
<property name="" ref="" />
<property name="">
<ref local="___" />
</property>
属性中出现集合的时候, -- map list set
<property name="list">
<list>
<ref local="___" />
<value>______</value>
......
</list>
</property>
<property name="map">
<map>
<entry name="key" >
<ref local="___" />
<entry>
<entry name="key" >
<value>______</value>
<entry>
</map>
</property>
<property name="set">
<set>
<ref local="___" />
<value>______</value>
</set>
</property>
Properties ---
<property name="Properties">
<props>
<prop key="key" >
___value____
</prop>
<prop key="key" >
___value____
</prop>
</props>
</property>
-->
</property>
</bean>