为什么要使用Spring呢?
Spring是轻量级容器架构,有了它,可以让Struts和hibernate工作的更好,能够更好的集成起来。
如果不使用框架,自己写,坏处就是需要些很多重复性的代码;使用框架,好处就是把这些重复性的工作封装成公共的服务,提高开发效率。
例如:分销项目需要使用工厂,因为工厂能够隐藏创建细节,其他的项目也要使用工厂,代码就重复了。创建工厂是一种独立的服务,可以拿出来。spring给我们提供了更加强大的工厂IOC容器,可以管理对象之间的依赖关系。演化:工厂--抽象工厂--Spring.
Connection也是从手动管理--动态代理--Spring管理的过程。
Spring最核心的东西就是对对象的管理。
Spring包含什么?
IOC(Inversion of Control):
控制反转。就是把应用程序对象之间的依赖关系,对象的查找、定位和创建,都交给了容器来管理,容器提供了对对象生命周期的管理。 例如最初UserManager需要UserDao ,需要采用new的方式;现在是把这种方式都交给容器,交给IOC。IOC分成两种依赖注入(Dependency Injection),依赖查找(Dependency lookup)。实现IOC最大的好处是 解除方法调用实现的耦合,替换一个实现子类会变的很简单,只需要修改xml接口,可实现对象的热插拔。
AOP(Aspect Oriented Programming):
面向切面的编程(例如:filter,动态代理)。就像事务,各个地方都要开启,各个地方都要提交。所以类似的这种服务是可以拿出来的,例如日志、异常处理、权限控制等等。这里用到了它声明式事务的功能。
DAO(Data Access Object):
数据访问对象,Spring有jdbc的模板,把jdbc做了进一步的封装,使用jdbc更容易了。Spring给我们提供的一个HibernateTemplate,直接用这个类里面的数据操作方法,就可以操作数据。
ORM(Object Relation Mapping):
Spring对JDBC提供了一层封装,可以跟主流的框架集成。
Spring主要提供什么服务?
Spring主要提供对象的管理,声明式服务,第三方集成。
Spring的优势是什么?
1.大量减少Factory和 Singleton的数量,代码层次更加清晰。
2.Spring IOC容器是轻量级容器,不具有侵入性,不需要依赖容器的API,也不需要依赖一些特殊的接口。