11 00Spring框架简介

任何的Java的开发框架其产生都只有一个前提目的:为了更方便的MVC开发。对于MVC的技术开发不得不去讨论的几个问题:

显示层控制层业务层数据层
1、负责数据的页面显示
2、联合HTML、CSS、JavaScript
1、服务器端验证
2、数据的接收与POJO转换
3、调用业务层
4、进行显示层跳转
1、负责数据库的打开和关闭
2、调用数据层并且整理数据
3、处理事务
1、只是负责数据的CRUD
JSP+EL+JSTL+AJAX+JavaScript+DOMServletJava原生编码JDBC原生编码
JQuery+JSONStruts 2.xHibernate

如果现在的开发使用了纯粹的JSP+Servlet+JDBC开发,代码的确是最简单的,但是带来的后续结果就是维护困难,而且不停的自己处理所有的操作关系,哪怕可以写出反射应用,但是其维护的成本与开发的成本实在是太高了。

但是后来随着技术的发展渐渐的有了更好的替代产品:
(1)显示层:JQuery+JSON,简化数据的传输,同时隐藏DOM操作的细节,使用Bootstrap等前台框架进行页面修饰(简化了DIV+CSS);
(2)控制层:利用Struts 2.x完成,提供了拦截器进行数据验证、提供了自动的数据类型转换(与VO的处理操作)、方便用户进行数据上传操作、所有的资源配置容易、跳转路径配置容易;
(3)数据层:使用Hibernate代替了已有的JDBC处理,利用了Hibernate提供的单表映射、数据查询、数据关联、缓存机制等概念提升数据库的操作性能与代码的开发简化;

但是随着这些问题的解决,发现业务层的问题越来越多了,如果说要使用Struts 2.x+Hibernate开发,虽然在控制层与数据层的操作上得到了大规模的改进,但是依然不可避免的要处理如下情况:
(1)数据层依然需要定义操作接口标准,依然需要定义子类,依然要准备DAOFactory;
(2)业务层依然要负责关闭数据库、手工处理事务、利用工厂类调用数据层、定义自己的ServiceFactory;
(3)在控制层里面依然需要业务层工厂类取得相应的对象信息。

现在整个开发项目的实现关键就在于业务层的控制处理上了,那么该如何可以更好的处理业务层呢?或者说该如何可以以更简化的形式方便的进行各种辅助业务处理?

在2000年之后,第一个集合的大工厂的框架——Spring诞生了,它的诞生是解决了横切面编程以及注入编程的窘境,同时当时世界上兴起了开源框架的开发风潮,但是各个框架之间的整合操作变为了一个新的问题,而Spring解决了这个问题,也就是最早的Spring提供的是一个工厂设计模式,同时也提供了不同开发框架的资源整合。


首先需要明确的是,Spring本身提供的是一个自己的容器,如果是容器,那么容器可以负责维持对象的状态,或者是某一个操作的横。而在整个Spring提供有如下的核心组件:
1、容器核心组件:
(1)Beans:表示的是Spring对所有Bean对象的管理,主要是包含了对象间的关系配置以及一些对象实例化操作。
(2)Core:包含了最底层的开发支持,例如:依赖的注入关系、资源文件的访问、数据类型的转换。
(3)Context:提供的是一个完整的容器上下文,在这个上下文之中可以处理对象的生命周期或者是事务。
(4)Expression Language(表达式语言模块):利用SpEL实现表达式语言的操作,以增强String的功能。

2、切面编程:
(1)AOP:是整个Spring的灵魂所在,利用切面编程来解决所有的辅助性操作,例如:数据库关闭、事务处理。
(2)Aspects:表示的是切面编程的语法支持,该语法形式最早起源于Apache中的AspectJ组件。
(3)Instrumentation:是在JDK 1.5之后增加的一个组件,主要用于检测JVM在运行中代码的动态处理。

3、数据访问模块:
(1)JDBC:在整个Java之中,对于数据库的操作只有JDBC一种操作形式,所以在Spring里面也提供有专门的ORMapping框架,这个框架就利用JDBC半原生完成。
(2)ORM:ORMapping框架的处理操作,可以方便的整合:JDO、Hibernate、iBatis、MyBatis等常见组件。
(3)OXM:提供了一个对象与XML文件之间的互相转换。
(4)JMS:提供有消息服务的支持。
(5)Transactions:表示在数据访问模块支持了事务的操作处理。

4、WEB支持模块
(1)MVC:Spring提供有自己的MVC实现(是目前实现最好的一种)。
(2)Struts:Spring方便的支持Struts的管理(方便的是Struts 2.x而不是Struts 1.x)。
(3)Servlet:自己负责处理MVC的Servlet程序类。

现在可以发现Spring完全承办了一个项目能够独立开发,并且可以容纳其它框架同时存在的综合型框架,不像Struts只能够负责控制层,而Hibernate只能够负责数据层,Spring全都可以进行负责。


Spring特点:
(1)Spring避免了关键字new造成耦合的问题;
(2)Spring本身就是一个工程,不需要再编写工厂类了;
(3)Spring不再需要进行明确的引用关系的传递,直接通过配置完成;
(4)所有框架几乎都可以再Spring中整合在一起使用;
(5)Spring编程 = Factory设计模式 + Proxy设计模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值