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 ...
随机推荐
- Android图片色彩变幻
最近在做图片相关的应用,所以就各方积累到一些常用的操作,一般来说会有多种方式来实现这一功能,比如 采用色度变换 采用ColorMatrix颜色矩阵 采用对像素点的直接操作 等等,今天就复习一下第一种方 ...
- ROS_Kinetic_05 ROS基础内容(二)
ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...
- GDAL中MEM格式的简单使用示例
GDAL库中提供了一种内存文件格式--MEM.如何使用MEM文件格式,主要有两种,一种是通过别的文件使用CreateCopy方法来创建一个MEM:另外一种是图像数据都已经存储在内存中了,然后使用内存数 ...
- 解决bootstrap row span设置border换行的问题
Hadoop方面的毕业设计告一段落了,趁这几天空闲时间认真学习一下之前常使用但是却没用好的Bootstrap. 本文记录Bootstrap框架使用栅格系统时,遇到row内的span设置border换行 ...
- Linux进程实践(3) --进程终止与exec函数族
进程的几种终止方式 (1)正常退出 从main函数返回[return] 调用exit 调用_exit/_Exit (2)异常退出 调用abort 产生SIGABOUT信号 由信号终止 Ctrl+ ...
- 【Unity Shaders】Diffuse Shading——漫反射光照改善技巧
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- Mahout系列之-----相似度
Mahout推荐系统中有许多相似度实现,这些组件实现了计算不能User之间或Item之间的相似度.对于数据量以及数据类型不同的数据源,需要不同的相似度计算方法来提高推荐性能,在mahout提供了大量用 ...
- 【面试笔试算法】Program 4 : Best Compression Algorithms(网易游戏笔试题)
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 易信是由网易和电信联合开发的一款即时通讯软件.除了语音聊天,免费电话等新功能以外,传统的文字信息聊天功能也得以保留,因此每 ...
- 校招:Vobile阜博通2015校园招聘
关于Vobile阜博通校招(10-11月份),耗时将近一个月,现整理分享给大家. 1 浙大笔试无选择填空,问答题为主,偏语言的个人理解,不在意具体语言方向(C/C++/Java).(1)描述C.C++ ...
- JDBC详解(汇总)
from:http://www.cnblogs.com/lee/archive/2007/08/25/869656.html:http://blog.csdn.net/lovesomnus/artic ...