【框架学习】基础知识 扫盲
框架
名词辨析:
技术:
解决某一类问题的方法或手段
例如:
servlet、jsp
JDBC —— java操作数据库,访问数据库的一套API
组件:
应用程序中可以“复用”的零件
例如:
分页组件 —— 很多页面都有分页逻辑,展示
数据库访问工具类 —— DBHelper、DBManager、DBUtil
框架:
- 建筑工程中:
由梁 柱等连接而成的结构;
比喻事物的组织,结构
- 程序中:
Framework,
是 构成特定软件 可复用设计的 一组 相互协助工作 的类
是 应用程序 的 半成品
系统:
是 实现了完整功能 的 应用程序
框架的底层核心技术:
反射机制
为什么要学习框架?
首先,本人来通过一张图展示下,在我们往常的JavaWeb学习中,
网站开发的流程:
本人现在来讲解下上图中的一个知识点 —— 容器与服务器:
容器与服务器:
- 容器:
功能单一
例如:tomcat就是一个servlet的容器
- 服务器
严格按照Java EE的规范提供技术支持的
例如:JBOSS(免费)、weblogic(收费)
那么,上图所展示的流程,我们能看到
以往的网络开发,利用了之前本人所讲解的MVC思想,完成了各层代码逻辑的解耦
但是,这种 使用MVC思想 的 jsp+servlet+javabean模式 存在很多致命问题:
致命问题:
- servlet非常多,处理起来很繁琐。
例如:用户的注册,登陆,修改用户信息
如果使用三个servlet,那么类太多,不好处理
如果使用一个servlet,那么一个类中就要存在三个方法,后台根据参数的不同而选择调用,实现起来麻烦
- servlet取值封装 很麻烦
例如:前端如果传递10个表单输入项
request.取值 10次、封装对象 setXX属性10次、还要注意数据类型的转换
- dao要编写大量的sql,且 sql语句不具备通用性,
即:适应于MySQL的sql不一定适应于Oracle
- dao的executeQuery()方法返回的是ResultSet结果集对象,
此对象要解析、封装为Java对象
- 开发效率低,因为有大量的重复性****的简单的编码任务
- 写出来的代码规范性不强,不标准
- 程序的扩展性较差
例如:客户让你统计程序中所有的save()方法每天被调用了多少次,实现起来就很麻烦了
那么,既然以往的jsp+servlet+javabean模式存在这么多弊端,
我们该如何解决呢?
现有如下想法:
- servlet:
获取前端发送的数据,如果不用取了,数据类型也自动封装好了- dao:
- 如果说sql不用写了,通过save()方法,对象就能够直接存储到数据库中去
- 数据库的结果集如果不解析,会自动映射为Java对象/集合
那么,正是因为有如上的想法,前辈们才能开发出“框架”:
程序中相似的部分,提取出来,做成一个规则,形成一个框架
这样就解决了程序中通用的、需要处理的代码,简化代码的开发
使得 程序员专注于程序逻辑的编写
在Java中,存在着非常多的框架,
甚至 包括本人之前博文中所讲解的C/SFramework,
以及之后博文中所要进行讲解的NetFramework,都是Java框架
现在,本人就来讲解下 Java中的常见框架:
Java中的常见框架:
Java中的 两大架构:
架构定义:
架构 —— 框架组合
首先是 在上个时代流行于一时的 “SSH架构”:
接下来是 在当前时代,风靡全球的 “SSM架构”:
那么,现在本人就来讲解下上面两个架构的持久层的区别
区别:
- Hibernate框架:
全自动
(几乎可以不用写sql)- mybatis框架
- 半自动
(sql还是需要自己写的)- 提供了其他很多的功能