任何的Java的开发框架其产生都只有一个前提目的:为了更方便的MVC开发。
对于mvc的技术开发的问题
显示层
1.负责数据的页面展示
2.联合HTML、CSS、JavaScript
使用技术
JSP+EL+JSTL+JavaScript+DOM+AJAX
替换为
jQuery+JSON
简化数据的传输,同时隐藏DOM操作的细节,或者使用Bootstrap等前台框架进行修饰(简化了DIV+CSS);
控制层
1.服务器端验证
2.数据的接受与POJO转换
3.调用业务层
4.进行显示层跳转
Servlet
替换为
利用Struts2.x完成,提供了拦截器进行数据验证、提供了自动的数据类型转换(与VO的处理操作)、方便用户进行数据上传操作、所有的资源配置容易、跳转路径配置容易
业务层
1.负责数据库的打开与关闭
2.调用数据层并且整理数据
3.处理事务
Java原生编码
数据层
1.只是负责数据的CRUD(增删改查)
JDBC原生编码
替换为
Hibernate代替已有的JDBC处理,利用了Hibernate提供的单表数据、数据查询、数据关联、缓存机制等概念提升数据库的操作性能与代码的开发简化;
总结
使用JSP+Servlet+JDBC开发,代码简单,但维护特别麻烦
1.数据层依然需要定义操作接口标准、定义子类、要准备DAOFactory;
2.业务层依然要负责关闭数据库、手工处理事务、利用工厂类调用数据层、定义自己的ServiceFactory;
3.在数据层里面一绕需要业务层工厂类取得相应的对象信息。
Spring诞生
解决了横切面编程以及注入编程的窘境,同时当时世界上兴起了开源框架的开发风潮。
最早的Spring提供的是一个工厂设计模式,同时也提供了不同开发框架的资源整合
Spring结构图Spring本身是一个容器,负责维持对象的状态,或者是后一个操作的横切。而在整个Spring提供如下的核心组件:
1.容器核心组件:
Beans:表示的是Spring对所有Bean对象的管理,主要是包含了对象间的关系和一些对象实例化操作
Core:包含了最底层的开发支持,例如:以来的注入关系、资源文件的访问,
Context:提供的是一个完整的容器上下文,这个上下文可以处理对象生命周期或者是事务
表达式语言模块:利用SpEL实现表达式语言的操作,以增强String的功能
2.切面编程
AOP:是Spring的灵魂,利用切面编程来解决所有的辅助性操作,例如:数据库关闭、事务处理
Aspect:表示的是切面编程的语法支持,该语法形式最早起源于Apache中的
Instrumentation:是在JDK1.5之后增加的一个组件,主要用于检测JVM
3.数据访问模块
JDBC:在整个Java之中,对于数据库的操作只有一种JDBC一种操作方式,在Spring中也提供有专门的ORMappin框架,这个框架利用JDBC版原声完成;
ORM:ORMapping框架的处理操作,可以方便的整合:JDO、Hibernate、IBatis、MyBatis等常见组件
OXM:提供了一个对象与XML文件之间的互相转换;
JMS:提供有消息服务的支持
Transactions:表示在数据访问模块支持
4.WEB支持模块
MVC:Spring提供有自己的MVC实现;
Struts:Spring方便的支持Struts的管理(是Struts2.x)
Servlet:自己负责处理的MVC的Servlet程序类。
Spring典型场景总结
1.Spring中避免了关键new造成耦合的问题
2.Spring本身就是一个工厂,不需要在编写工厂类了
3.Spring不再需要进行明确的引用关系的传递,直接通过配置完成
4.所有框架几乎都可以在Spring中整合在一起使用
5.Spring编程=Factory设计模式+Proxy设计模式
网友评论