spring常见知识点

一.Spring是什么?

1Spring是一个IoC容器,利用DI技术管理对象之间的依赖!

IoC: Inversion of Control(控制反转)

DI: Dependency Injection(依赖注入)

Spring也是一个对象工厂,它负责生产(即创建)和管理(比如控制它们的生命周期,或给特定的对象创建代理等等)着各种对象

Spring也是一个对象工厂,它负责生产(即创建)和管理(比如控制它们的生命周期,或给特定的对象创建代理等等)着各种对象

控制反转(IoC)

所谓控制:即获取依赖对象的方式

假如A要调用B的方法(即A依赖于B),则A首先要获得B对象

B b = new BImplement();

A直接依赖于B的具体实现

B b = Factory.getBInstance();

A依赖于工厂对象

上面就是没有“反过来”的情况:A主动获取B对象

反转

即如果A要获取B对象,不是由A主动获取B对象,而是由其它人把B送给A(即将B注入给A),因为A依赖于B,所以BA的依赖对象,因此称“依赖注入(DI)”

DIscope

把多例对象注入到多利对象中(没有问题)

把多例对象注入到单利对象中(有问题)

把单利对象注入到多例对象中(没有问题)

把单例对象注入到单利对象中(没有问题)

2)类型转换器的配置

<!--注册类型转换器  -->

<bean class="org.springframework.beans.factory.config.CustomEditorConfigurer">

<property name="customEditors">

<map>

<!-- key对应的就是类型,value对应的就是转换器 -->

<entrykey="java.util.Date"value="cn.com.leadfar.spring.actions.DateConver"></entry>

</map>

</property>

</bean>

3)注入的几种方式

使用构造器注入

使用属性setter方法注入

使用Field注入(用于注解方式)

注入依赖对象可以采用手工装配或自动装配,在实际应用中建议使用手工装配,因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。

1.手工装配依赖对象

2.自动装配依赖对象

二.注解(annotation)和XML通用

利用注解进行注入

---Component,默认定义的beanID是类名(第一个字母小写)

----Controller 定义Action

---Service 定义业务逻辑对象

---Repository 定义持久化层对象

--Scope(“prototype” )定义Scope属性

---Resource注解缺省是按类型注入,除非指定name属性

典型的应用 Action---service---dao(三层架构中的注解)

异常:

1)懒加载异常 由于hibernate处于离线状态,将session关闭,导致jsp页面不能访问数据库中的内容。如何解决:为了解决。Ssh集成的时候通常在web.xml中定义OpensessionInViewFilter.Filter通常定义在最前面

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章