文档章节

【转】关于J2EE分层及框架的比喻

7_0
 7_0
发布于 2012/11/17 14:15
字数 464
阅读 930
收藏 7
打个比方. 
现在的j2ee开发,就好象对面来了一个人. 
最外面穿着一件风衣(HTML) 
风衣里面穿着西装(Struts) 
西装里面穿着马甲(Spring) 
马甲里面穿着衬衫(Hibernate) 
衬衫的里面才是真实的人(数据库) 
全部衣服都是采用棉布做成的(Java) 
每件衣服上都可能有其他配件(第3方库) 
各件衣服之间需要配套使用(版本兼容) 

如果你想看到这个人到底长啥样,必须得:先脱一件,再脱一件,再脱一件.最后才能看到最终数据库里面的数据是啥样子. 

在很久很久以前,这个人是不穿衣服的. 
你直接可以看到他(SQL语句) 
现在不行了,你必须穿越层层衣服来看这个人. 

每件衣服都是不同的厂家做出来的.而且随时在改变. 
你必须自己把这些衣服一件一件套上去,祈祷他们大概能够合身. 

每件衣服都可能有漏洞(bug),你得自己想办法打个补丁(patch)上去. 





这个比喻真不错. 

还有一点可以联想一下. 

真实的人(数据库) 也是有不同的, 有小个子(小应用),有大个子(大应用),有胖(相对复杂,有些可能要定制),有瘦(相对简单),有男(偏应用),也有女(偏外表)。 

针对不同的人就得有不同的衣服来包装。 

甚至于还还要考虑到季节的因素, 

比如天热时,只穿几件短衣,短裤也许就够了,穿多了反而要热死了。 
而天冷时,就得穿得厚重些,穿少了就得冷死了。 

总而言之,穿的合适,舒服才是正道。 

本文转载自:http://www.busfly.net/csdn/post/798.html

7_0

7_0

粉丝 2
博文 21
码字总数 4097
作品 0
南岸
程序员
私信 提问
Java Web开发表现层大家都是用的啥流派?

最近看java,看完servlet和jsp的基本技术,感觉在表现层这一块比较混乱。 感觉基本上有这些个 jsp基本声明、指令、代码片段 EL表达式 自定义JSP标签(标准/simple) JSTL标签库(core/i18n/s...

linnchord
2010/08/19
3K
20
tomcat 5.5 部署项目报错 关于Filter的错误。。

我在tomcat7.0部署没不报错,但是再tomcat5.5就会报错。。 listener.ContextListener UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter logLevel WARN UrlRewriteFilte......

庄泽锐
2014/03/06
1K
5
关于JPA的解释(比较基础的解释)

什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工...

Littlebox
05/31
16
0
[转]通俗易懂Tomcat中Servlet的生命周期,讲的非常详细

我在上一篇文章里详细的介绍了 HTTP协议工作的流程,其中最重要的就是如何理解HTTP请求头和HTTP响应头,现在在这里再来详细的说明Tomcat 容器(即Servlet 容器)到底是如何 管理Servlet的,S...

晨曦之光
2012/04/11
1K
0
No mapping found for HTTP request with URI [/demo/WEB-INF/view/index.html] in DispatcherServlet with name 'SpringMVC'

错误:[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/demo/WEB-INF/view/index.html] in DispatcherServlet with name 'SpringMVC' web.......

mhi
03/06
814
2

没有更多内容

加载失败,请刷新页面

加载更多

Archiva 不小心删掉了管理员权限怎么办

Archiva 的界面和 UI 比较容易出问题。 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了。 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可以尝试...

honeymoose
41分钟前
5
0
Java8新特性之空指针异常的克星Optional类

Java8新特性系列我们已经介绍了Stream、Lambda表达式、DateTime日期时间处理,最后以“NullPointerException” 的克星Optional类的讲解来收尾。 背景 作为开发人员每天与NullPointerExceptio...

程序新视界
53分钟前
4
0
OSChina 周四乱弹 —— 福布斯终身秃头奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享如是我闻的单曲《地藏经上卷》: 如是我闻#今日歌曲推荐# 《地藏经上卷》- 如是我闻 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
56分钟前
218
8
Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
6
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部