struts2java
是一种Web框架(jsp/action/actionform)spring
hibernate数据库
是orm框架,处于持久层编程
spring安全
是容器框架,用于配置bean,并维护bean之间关系的框架。框架
beanjsp
是java中的任何一种对象: javabean/service/action/数据源/dao模块化
ioc (Inverse of control)控制反转工具
1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首先提出了IOC 这个概念。IOC理论提出的观点:借助于“第三方”实现具备依赖关系的对象之间的解耦。,所有对象的控制权所有上缴给“第三方”IOC容器,因此,IOC容器成了整个系统的关键核心,它起到了一种相似“粘合剂”的做用,把系统中的全部对象粘合在一块儿发挥做用。spa
控制反转为了解决对象之间耦合度太高的问题。
不建立对象,可是描述建立它们的方式(setter或构造器)。在代码中不直接与对象和服务链接,但在配置文件中描述哪个组件须要哪一项服务。它为相互依赖的组件提供抽象,将依赖(底层模块)对象的得到交给第三方(系统)来控制,即依赖对象不在被依赖模块的类中直接经过new来获取。
控制权的转移,应用程序自己不负责依赖对象的建立和维护,而是由外部容器负责建立和维护。
假设对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,本身必须主动去建立对象B或者使用已经建立的对象B。不管是建立仍是使用对象B,控制权都在本身手上。因为IOC容器的加入,对象A与对象B之间失去了直接联系,因此,当对象A运行到须要对象B的时候,IOC容器会主动建立一个对象B注入到对象A须要的地方。
di (dependency injection)依赖注入
IoC的一种实现方式,用来反转依赖(IoC的具体实现方式),就是将依赖对象的建立和绑定转移到被依赖对象类的外部来实现。建立对象而且组装对象之间的关系。
经过DI,对象的依赖关系将由负责协调系统中各个对象的第三方组件在建立对象时设定。对象无需自行建立或者管理它们的依赖关系——依赖关系将被自动注入到须要它们的对象中去。
依赖最大的好处就是松耦合。
2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么究竟是“哪些方面的控制被反转了呢?”,通过详细地分析和论证后,他得出了答案:“得到依赖对象的过程被反转了”。控制被反转以后,得到依赖对象的过程由自身管理变为了由IOC容器主动注入。因而,他给“控制反转”取了一个更合适的名字叫作“依赖注入(Dependency Injection)”。他的这个答案,实际上给出了实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
因此,依赖注入(DI)和控制反转(IOC)是从不一样的角度的描述的同一件事情,就是指经过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。
http://blog.csdn.net/m13666368773/article/details/7802126
AOP面向切面
AOP主要是实现高内聚,从而使得组件更加关注自身业务。将安全、事务以及日志等系统服务与核心业务逻辑进行分离,使这些服务模块化,并经过声明的方式将它们应用到须要影响的组件中去。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架
- 从大小与开销方面而言Spring都是轻量的
- 经过控制反转(IoC)的技术达到松耦合的目的
- 提供了面向切面编程的丰富支持,容许经过分离应用的业务逻辑与系统服务进行内聚性的开发(如:业务逻辑-商品管理中的入库与出库,系统服务-入库出库操做中涉及的日志管理与事务处理等与业务无关的)
- Spring包含并管理应用对象的配置和生命周期,这个意义上是一种容器
- Spring将简单的组件配置组合成为更复杂的应用,这个意义上是一种框架
组成 Spring 框架的每一个模块(或组件)均可以单独存在,或者与其余一个或多个模块联合实现。每一个模块的功能以下:
核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory
,它是工厂模式的实现。BeanFactory
使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
Spring AOP:经过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。因此,能够很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。经过使用 Spring AOP,不用依赖 EJB 组件,就能够将声明性事务管理集成到应用程序中。
Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不一样数据库供应商抛出的错误消息。异常层次结构简化了错误处理,而且极大地下降了须要编写的异常代码数量(例如打开和关闭链接)。Spring DAO 的面向 JDBC 的异常听从通用的 DAO 异常层次结构。
Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。全部这些都听从 Spring 的通用事务和 DAO 异常层次结构。
Spring Web 模块:Web 上下文模块创建在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。因此,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工做。
Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。经过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
核心容器Core Container
容器是Spring框架最核心的部分,它负责Spring应用中的Bean建立、配置和管理。包括Bean工厂和应用上下午ApplicationContext,全部的Spring模块都构建于核心容器之上。
AOP模块
AOP模块是Spring应用系统开发切面的基础。与DI同样,AOP能够帮助应用对象解耦。
数据访问与集成Data Access/ Integration
使用JDBC编写代码一般会致使大量的样板式模块,例如数据库链接、建立语句、处理结果集、关闭链接。该模块封装了这些样板式代码。集成了许多ORM框架。
Web和远程调用
MVC模式已被广泛的接受为一种构建Web应用的方法,它有助于将用户界面逻辑与应用逻辑分离。