Java Web Without SSM(前言)
是的,Spring,Mybaties确实给我们带来了方便的轻量级JavaWeb开发,但是,对于大部分中小系统来说,分层,框架,规范,已经成为一种累赘。
实际的程序开发过程中,大部分时间都花在了“架构”上,实际上我们真的需要吗?
-------冷静一下------------
我们先忘掉各种框架,设计模式。想一想一个简单的需求,商品列表查询。
实现这个需求,我们需要什么?
一个客户端浏览器,用来显示界面。
一个数据库,用来存储商品列表。
一段程序,处理客户端浏览器和后台数据库的通信。
程序是什么样的?
我们用到的产品是浏览器和数据库,所以程序需要针对浏览器和数据库来编写逻辑。
浏览器与程序所在服务器的交互方式是HTTP协议,数据库和程序所在服务器的交互方式是SQL。
是的,程序的职能是做HTTP协议和SQL语句的映射。
---------说点废话-----------
如果写程序的人不知道自己要解析的协议张什么样,不知道发给数据库的SQL张什么样,其实是沉寂在自己的面向对象的世界里编程。
我需要的只是一个梨,你却给我一车苹果,还要在苹果上加各种接口转化成我想要的梨。
为什么不直接给我一个梨呢?
是的,你会说今天我想要个小号的梨,明天我想要个大号的梨,后天我想要一个小号一个大号的梨。我这一车苹果可以适应你各种变更。
对比
时间成本:
给我一个梨,需要一天完成,给我一车苹果需要一个月完成。
人员成本:
给我一个梨,一个听话的人即可。给我一车苹果需要有经验的有知识的人。
风险:
一车苹果中任意苹果坏掉,都要花时间去调查,修改。接口变更还要考虑苹果的堆放方式是否适合。
-------别吵,再冷静一下,步入正题------------
这么说我们不要考虑扩展,考虑设计模式,考虑业务增长了吗?
需要,需要适当的考虑,需要将这些问题放在软件工程中解决这些问题。
如果大家对业务分析和系统设计做得足够到位,会减少大量的项目成本和项目风险,大大地提高项目质量。
HTTP协议和SQL语句
我们来看一个浏览器请求到显示结果这个过程。
去:浏览器发送HTTP协议-服务器解析HTTP协议,得到页面数据-验证数据的合法性-将数据拼接成SQL-发送SQL给数据库
回:数据库返回查询结果-服务器解析结果转化成页面数据-渲染页面-将渲染后页面发送给浏览器
对于HTTP协议的解析我们可以采用HttpServlet
对于页面的渲染我们可以采用Jsp
//等等,为什么不用Velocity。。。,做页面的人看不懂Java代码。。。
//其实Java代码比Velocity好看多了。
//你要做得是分析分析分析,知道页面上到需要什么程度的后台逻辑,这个我们以后讲。
//上面这些行注释掉
我们还需要如下功能:
验证权限,验证数据,控制事务,控制数据库连接,写日志,拼接SQL,将数据库查询结果转化为页面数据等。
这些功能可以做成组件,或拿一个最好的组件来用。
在以后的章节中,我们将逐一分析并实现这些组件。
最终目的就是让数据从浏览器到服务器的路变得通畅。
让大家的时间集中在业务分析上,让DBA可以清晰地知道数据库要解析的SQL。
去除不必要的数据转换和障碍,风险。
--------------------------------------------------------
是的,我们将一起开发出一个新的框架,一个很简单很简单很实用的框架,让SQL回归数据库。
Java Web Without SSM(前言)的更多相关文章
- Java WEB框架——SSM之Hello world
一.建立项目 先搭建一个webapp项目(要选creat from arctype) 起名 选择maven路径,settings.xml那里要选择override才可以在资源管理器中浏览.接下来直接N ...
- Java Web 之 SSM笔记
好久没有写博文了呀呀呀........博客园的MarkDown还是...算了吧 自定义 Restful 风格结果集 参考资料 [SpringBoot专题]统一异常处理和统一数据返回前言实践运行结果 如 ...
- Java WEB框架——SSM迈向M之登录
1.pom.xml 关于pom.xml,<version>等标签先暂时不谈,<dependency> 的作用主要是添加相应的支持包,比如spring,servlet,jdbc等 ...
- java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...
- 基于SSM的Java Web应用开发原理初探
SSM开发Web的框架已经很成熟了,成熟得以至于有点落后了.虽然如今是SOA架构大行其道,微服务铺天盖地的时代,不过因为仍有大量的企业开发依赖于SSM,本文简单对基于SSM的Java开发做一快速入门, ...
- 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)
概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ...
- idea 创建 SSM + maven Java Web 项目流程
idea 创建 SSM + maven Java Web 项目流程 一.idea 中选择File,New Project 新建项目 二.选择Maven,勾选上面的Create from archety ...
- 关于Java Web结构和SSM框架的理解
Java Web常见的三层结构 表现层:也就是Web层,常见的框架有Spring MVC.Struts2 ,并包括用于展示的界面,如JSP界面:业务层:Service层,专注于业务逻辑的实现:持久层: ...
- Java web轻量级开发面试教程的前言
本文来是从 java web轻量级开发面试教程从摘录的. 为什么要从诸多的Java书籍里选择这本?为什么在当前网络信息量如此大的情况下还要买这本书,而不是自己通过查阅网络资料学习?我已经会开发Java ...
随机推荐
- gitlab6 配置的几个问题说明
gitlab6 配置的几个问题说明 按照gitlab的网站的详细步骤,终于把gitlab 6.1 stable安装到2台虚拟机上了.由于gitlab6运行于虚拟机上,所以配置这个虚拟机的hostnam ...
- Socket层实现系列 — connect()的实现
主要内容:connect()的Socket层实现.期间进程的睡眠和唤醒. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 应用层 int connect( ...
- 基于Qt的手机程序----口袋理财
主页面 记账模块 制定目标 备忘录
- Css详解之(伪类选择器)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux 进程等待队列
Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制. 在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待 ...
- (NO.00002)iOS游戏精灵战争雏形(五)
完成了精灵自己移动之后,我们开始着手实现按住精灵拖动的功能. 要想处理触摸事件,我们需要做2件事: 1.在类的初始化中打开触摸接收属性 2.实现触摸处理回调方法 我们依次来做这2件事. 首先要搞清楚在 ...
- nginx 配置open_cache_file 静态文件的缓存
open_file_cache max=65535 inactive=30s 最多缓存多少个文件,缓存多少时间open_file_cache_min_uses 1 在30S中没有使用到这个配置的次数的 ...
- 11_Android中HttpClient的应用,读取网络xml及xml解析流,Handler的应用,LayoutInflater的使用,SmartImageView的使用
1 所需的web项目结构如下: 2 new.xml的文件内容如下: <?xml version="1.0" encoding="UTF-8" ?&g ...
- mpi中的广播
MPI可以实现一对多的集合通信,最常用的是广播:某个进程将数据广播到所有其他进程,最终的结果就是每个进程都有一份广播的数据.MPICH中的广播函数是MPI_Bcast(void* buffer,int ...
- Hive 配置
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="confi ...