三层架构
简介
1, 表现层: 现在看到的网页 一些界面 都属于表现层的东西
2, 业务层 (service): 用来实现整体的业务逻辑 如 前台获得了数据, 逻辑层去解析这些数据, 效验这些数据等操作
3, 持久层: 用来固化数据, 如常说的 DAO 层, 操作数据库将数据入库
框架 -(链接到自己博客中介绍)
1,Hibernate:
简介
Hibernate 是一个开放源代码的对象关系映射框架, 它对 JDBC 进行了非常轻量级的对象封装, 使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库.
核心类和接口
Hibernate 的核心类和接口一共有 6 个, 分别为: Session,SessionFactory,Transaction,Query,Criteria 和 Configuration. 这 6 个核心和类接口在任何开发中都会用到. 通过这些接口, 不仅可以对持久化对象进行存取, 还能够进行事务控制.
2,Struts2:
(1) 客户端 (Client) 向 Action 发用一个请求(Request)
(2) Container 通过 web.xml 映射请求, 并获得控制器 (Controller) 的名字
(3) 容器 (Container) 调用控制器(StrutsPrepareAndExecuteFilter 或 FilterDispatcher). 在 Struts2.1 以前调用 FilterDispatcher,Struts2.1 以后调用 StrutsPrepareAndExecuteFilter
(4) 控制器 (Controller) 通过 ActionMapper 获得 Action 的信息
(5) 控制器 (Controller) 调用 ActionProxy
(6) ActionProxy 读取 struts.xml 文件获取 action 和 interceptor stack 的信息.
(7) ActionProxy 把 request 请求传递给 ActionInvocation
(8) ActionInvocation 依次调用 action 和 interceptor
(9) 根据 action 的配置信息, 产生 result
(10) Result 信息返回给 ActionInvocation
(11) 产生一个 HttpServletResponse 响应
(12) 产生的响应行为发送给客服端.
3,Spring:
简介
Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情. 然而, Spring 的用途不仅限于服务器端的开发. 从简单性, 可测试性和松耦合的角度而言, 任何 Java 应用都可以从 Spring 中受益. Spring 的核心是控制反转 (IoC) 和面向切面(AOP). 简单来说, Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级开源框架.
框架特点
轻量 -- 从大小与开销两方面而言 Spring 都是轻量的. 完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布. 并且 Spring 所需的处理开销也是微不足道的. 此外, Spring 是非侵入式的: 典型地, Spring 应用中的对象不依赖于 Spring 的特定类.
控制反转 --Spring 通过一种称作控制反转 (IoC) 的技术促进了低耦合. 当应用了 IoC, 一个对象依赖的其它对象会通过被动的方式传递进来, 而不是这个对象自己创建或者查找依赖对象. 你可以认为 IoC 与 JNDI 相反 -- 不是对象从容器中查找依赖, 而是容器在对象初始化时不等对象请求就主动将依赖传递给它.
面向切面 --Spring 提供了面向切面编程的丰富支持, 允许通过分离应用的业务逻辑与系统级服务 (例如审计(auditing) 和事务 (transaction) 管理)进行内聚性的开发. 应用对象只实现它们应该做的 -- 完成业务逻辑 -- 仅此而已. 它们并不负责 (甚至是意识) 其它的系统级关注点, 例如日志或事务支持.
容器 --Spring 包含并管理应用对象的配置和生命周期, 在这个意义上它是一种容器, 你可以配置你的每个 bean 如何被创建 -- 基于一个可配置原型(prototype), 你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例 -- 以及它们是如何相互关联的. 然而, Spring 不应该被混同于传统的重量级的 EJB 容器, 它们经常是庞大与笨重的, 难以使用.
框架 --Spring 可以将简单的组件配置, 组合成为复杂的应用. 在 Spring 中, 应用对象被声明式地组合, 典型地是在一个 XML 文件里. Spring 也提供了很多基础功能(事务管理, 持久化框架集成等等), 将应用逻辑的开发留给了你.
4,SpringMVC:
简介
Spring MVC 属于 SpringFrameWork 的后续产品, 已经融合在 Spring Web Flow 里面. Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块. 使用 Spring 可插入的 MVC 架构, 可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架.
5,Mybatis:
简介
MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache software foundation 迁移到了 google code, 并且改名为 MyBatis .2013 年 11 月迁移到 Github.iBATIS 一词来源于 "internet" 和 "abatis" 的组合, 是一个基于 Java 的持久层框架. iBATIS 提供的持久层框架包括 SQ Maps 和 Data Access Objects(DAO)
分类
1, 表现层: 现在看到的网页 一些界面 都属于表现层的东西
2, 业务逻辑层 (service):Struts2,SpringMVC
3, 持久层: Hibernate,Mybatis
Spring 作用: 解耦合
MVC
简介
MVC 是一种使用 MVC(Model View Controller 模型 - 视图 - 控制器)设计创建 Web 应用程序的模式:
1,Model(模型)表示应用程序核心(比如数据库记录列表).
2,View(视图)显示数据(数据库记录).
3,Controller(控制器)处理输入(写入数据库记录).
MVC 模式同时提供了对 html,CSS 和 JavaScript 的完全控制.
a,Model(模型)是应用程序中用于处理应用程序数据逻辑的部分.
通常模型对象负责在数据库中存取数据.
b,View(视图)是应用程序中处理数据显示的部分.
通常视图是依据模型数据创建的.
c,Controller(控制器)是应用程序中处理用户交互的部分.
通常控制器负责从视图读取数据, 控制用户输入, 并向模型发送数据.
框架内容
MVC 是一个框架模式, 它强制性的使应用程序的输入, 处理和输出分开. 使用 MVC 应用程序被分成三个核心部件: 模型, 视图, 控制器. 它们各自处理自己的任务. 最典型的 MVC 就是 JSP + servlet + javabean 的模式.
视图:
视图是用户看到并与之交互的界面. 对老式的 Web 应用程序来说, 视图就是由 HTML 元素组成的界面, 在新式的 Web 应用程序中, HTML 依旧在视图中扮演着重要的角色, 但一些新的技术已层出不穷, 它们包括 Adobe Flash 和像 XHTML,XML/XSL,WML 等一些标识语言和 Web services.
MVC 好处是它能为应用程序处理很多不同的视图. 在视图中其实没有真正的处理发生, 不管这些数据是联机存储的还是一个雇员列表, 作为视图来讲, 它只是作为一种输出数据并允许用户操纵的方式.
模型:
模型表示企业数据和业务规则. 在 MVC 的三个部件中, 模型拥有最多的处理任务. 例如它可能用像 EJBs 和 ColdFusion Components 这样的构件对象来处理数据库, 被模型返回的数据是中立的, 就是说模型与数据格式无关, 这样一个模型能为多个视图提供数据, 由于应用于模型的代码只需写一次就可以被多个视图重用, 所以减少了代码的重复性.
控制器:
控制器接受用户的输入并调用模型和视图去完成用户的需求, 所以当单击 Web 页面中的超链接和发送 HTML 表单时, 控制器本身不输出任何东西和做任何处理. 它只是接收请求并决定调用哪个模型构件去处理请求, 然后再确定用哪个视图来显示返回的数据.
框架和设计模式的区别
框架通常是代码重用, 而设计模式是设计重用, 架构则介于两者之间, 部分代码重用, 部分设计重用, 有时分析也可重用. 在软件生产中有三种级别的重用: 内部重用, 即在同一应用中能公共使用的抽象块; 代码重用, 即将通用模块组合成库或工具集, 以便在多个应用和领域都能使用; 应用框架的重用, 即为专用领域提供通用的或现成的基础结构, 以获得最高级别的重用性.
框架与设计模式虽然相似, 但却有着根本的不同. 设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述, 它比框架更抽象; 框架可以用代码表示, 也能直接执行或复用, 而对模式而言只有实例才能用代码表示; 设计模式是比框架更小的元素, 一个框架中往往含有一个或多个设计模式, 框架总是针对某一特定应用领域, 但同一模式却可适用于各种应用. 可以说, 框架是软件, 而设计模式是软件的知识.
框架模式有哪些?
MVC,MTV,MVP,CBD,ORM 等等;
框架有哪些?
C++ 语言的 QT,MFC,gtk,Java 语言的 SSH ,SSI,php 语言的 smarty(MVC 模式),python 语言的 django(MTV 模式) 等等
设计模式有哪些?
工厂模式, 适配器模式, 策略模式等等
简而言之: 框架是大智慧, 用来对软件设计进行分工; 设计模式是小技巧, 对具体问题提出解决方案, 以提高代码复用率, 降低耦合度.
MVC 的常见框架
,Struts
,Spring
,ZF
,.NET
来源: http://blog.csdn.net/u012393192/article/details/79220359