最近开始学习J2EE,学了JAVA、JSP、Servlet的一些基本内容,还以为接触了不少关于J2EE的知识。
后来在网上一看,才知道自己学了九牛一毛,还有EJB、JSF、Struts、Spring、Hibernate等等,看得我暴汗,不知何时才能掌握J2EE!
J2EE(即Java 2 平台企业版)是由Sun公司主持推出的一项中间件技术,从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准。
简单地说,J2EE是一个标准中间件体系结构,旨在简化和规范多层分布式企业应用系统的开发和部署。J2EE方案的实施可显著地提高系统的可移植性、安全性、可伸缩性、负载平衡和可重用性。
下面举一个例子(说明J2EE以及Struts、Spring、Hibernate),本人觉得该例子相当通俗。
假如要盖一幢小楼房(做一个网站),我们需要做的是:
1:买一块地(租一台服务器)--1天
2:申请一个门牌号码(买一个域名)--1天
3:买材料,请2、3个工人,开始盖房(准备所需要集成开发环境(IDE),搭建测试环境,找2,3个程序员--刚毕业的大学生就可以了)--1周
4:盖房(敲代码编程)--2到3个月
5:房子盖好了,东敲敲西敲敲看牢不牢固(自己测试一下功能都齐全了没)--1周
6: 如果有问题,比方说卧室不够透气,把卧室的墙多开一扇窗户(哪个页面有问题,删除重写一个)。比方说墙里面的电线发现有问题,把墙凿开,换一根电线。
总共耗时3-4个月左右。
如果现在我要盖一栋大楼(开发一个企业级项目),本质上还是盖房子,但是如果就像盖小平房一样的去做。结果是如何?
盖到12楼了,突然说5楼内测的电线堵住了,5楼以上都没有电,于是得把5楼以上的全拆了,拆到5楼,把墙凿开,把电线换一根,再继续往上面盖。
相信没有哪栋大厦是这样盖出来的。
于是有了建筑师(软件架构师)这个职位,有了建筑设计学(软件架构学)这么个说法。
下面是盖大楼的步骤:
1、地还是要买,不过得做土地勘察,样本采集,看地质如何(地质不好大楼会下沉)。
2、然后得画图纸,这图纸一画就是很久,要考虑到整栋大楼的方方面面,哪些墙可以供拆除,就在里面放电线水管什么的,哪些是主力墙不能拆除。
3、接着就是打地基。这也是相当重要的环节,地基没打好,整个房子都不稳固。
4、再然后就是用钢筋水泥等,打造整栋大楼的框架。让房子非常坚固。
5、最后才是逐步完善大楼内部,一层层的砌砖,一间间地粉刷,装修。就算某一块出了问题。去掉或者修复那一块就行了,整栋大楼屹立不倒,稳稳当当。
企业级项目中,也是同安的过程:
先用UML建模,建立数据库模型,项目的分层架构设计,使用框架让整个项目健壮起来,动一处而不会牵动全身。
Struts,Spring,Hibernate都是为了让项目更健壮而产生的。如果只是要做一个小网站,我觉得很没有必要使用这些东西,就ASP,PHP一定能做得更快,就像盖小平房一样。
就算要用Java,就用JSP+JavaBean+Servlet就行了。如果是开发企业级项目,ASP和PHP是绝对不能跟J2EE相提并论的。
下面对Struts+Spring+Hibernate架构(使用J2EE进行开发的具体环境架构)进行简单介绍:
Struts是MVC(模型-视图-控制器)框架,它的作用不是让人能干什么(它能做的事JSP都能做),而是给程序语言严格的规范,让程序员按照规范走,这样可以保证项目的高度一致性。
就好像建筑工人要听建筑师的安排,不能随心所欲地做自己的事。
Spring是J2EE轻量级控制反转(IOC)和面向切面(AOP)的容器框架。它的做法好比把项目分成一个个的组件,哪一块出了问题,换掉那一块就是了。别的地方根本不用动。
就好像我刚刚举的5楼电线出了问题,就在5楼把墙凿开,换一个电线即可,不用担心5楼的墙凿开上面的会塌下来。 Spring使你能够编写更干净、更可管理、并且更易于测试的代码。
Hibernate
是一个面向Java环境的ORM(对象/关系数据库映射)工具,不能称之为框架,用来把对象模型表示的对象映射到基于SQL
的关系模型结构中去。它对JDBC进行了非常轻量级的对象封装,把数据库表中的每个字段都看做是一个对象,是通过一组set和get方法组来实现的。最具
革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
不过Struts+Spring+Hibernate架构只有在大项目开发中才会用到。所以如果是小项目开发,不建议使用J2EE.
分享到:
相关推荐
**J2EE初学者指南** Java 企业版(J2EE)是Java平台的一个重要组成部分,主要用于构建分布式、多层的企业级应用。本课件专为初步掌握Java基础知识的学习者设计,旨在帮助你们深入理解J2EE开发的核心概念和技术。 *...
**J2EE初学者课程概览** J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建企业级应用程序的框架。它提供了一个多层架构,支持分布式、可伸缩性和安全性的应用开发。本课程是专为J2EE初学者设计的...
本资料集合针对J2EE编程的初学者,旨在帮助他们逐步掌握这一复杂但强大的技术。 首先,了解J2EE的基础概念至关重要。J2EE主要由一系列的组件和服务构成,包括Servlet、JSP(JavaServer Pages)、EJB(Enterprise ...
**BBS系统与J2EE初学教程源码详解** J2EE(Java 2 Platform, Enterprise Edition)是一个用于开发企业级应用的平台,它提供了丰富的功能和组件,支持多层分布式架构,使得开发者能够构建可扩展且健壮的网络应用。本...
### J2EE初学者需要注意的问题 #### 一、J2EE体系结构简介 J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为解决企业级应用开发中遇到的复杂性和标准化问题而提出的一套解决方案。它基于Java技术...
【J2EE初学学习教程】是一份针对Java企业级应用开发的学习资料,重点介绍了基于MVC模式的一体化开发过程。在这个过程中,UML(统一建模语言)被用来描述用户需求,进行对象导向的分析(OOA)和设计(OOD)。 1. **...
**J2EE初学者需要理解的问题** J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems(后来被Oracle收购)推出的企业级应用平台,基于Java技术,旨在提供一套规范和标准,以便开发、部署和管理分布式...
【描述】:“非常简单的J2EE购物车是一个基础的电子商务项目,旨在帮助初学者理解J2EE技术在构建web应用程序时的应用,特别是如何实现一个基本的购物车功能。这个项目可能涵盖了用户登录、商品浏览、添加到购物车、...
**J2EE编程指南概述** J2EE(Java 2 Platform, Enterprise Edition)是一个用于构建企业级分布式应用程序的平台,它提供了丰富的服务和组件模型,包括Web应用、EJB(Enterprise JavaBeans)、JMS(Java Message ...
这份中文文档对于初学者和经验丰富的开发者来说都是非常宝贵的资源,它可以帮助读者理解J2EE API的使用方式,快速定位问题,提升开发效率。通过阅读和实践,你可以深入掌握J2EE的精髓,从而更好地构建健壮、可扩展的...
本教程将指导初学者如何在Windows XP SP2环境下,使用Sun J2EE 1.3 SDK进行基本的J2EE开发工作,包括SDK的安装、配置,以及创建和部署第一个简单的Enterprise JavaBean (EJB)。 **1. J2EE SDK的安装与配置** 首先...
对于初学者和有经验的开发者来说,这都是一个宝贵的参考资料。 **JavaEE_CN** "JavaEE_CN"可能是J2EE的中文社区或者特定版本的简称。在这样的社区或资源中,开发者可以找到更多的中文教程、讨论和问题解答,这有助...
这些实例将帮助初学者快速理解和掌握J2EE开发。 **5. 学习J2EE的好处** - 广泛支持:许多大型企业和组织使用J2EE构建关键业务系统。 - 可移植性:基于标准,可以在不同的应用服务器上运行。 - 分层架构:易于维护和...
对于初学者而言,通过逐步分析和运行这个项目,可以更好地理解和掌握J2EE的开发流程和设计模式,同时也能提高实际问题解决能力。 总的来说,本项目为J2EE的学习者提供了一个全方位的实践平台,涵盖了从数据库设计到...
J2EE核心模式中文第一版是针对初学者的一份宝贵教程,它深入浅出地介绍了如何运用这些模式来解决实际开发中的问题。 1. **分层架构模式**:J2EE应用通常采用三层架构,包括表现层(Presentation Layer)、业务逻辑...
j2ee中文版,初学必看 1111111111111111111111111111111111111111111
本项目名为“简单的J2EE项目”,意味着它是一个基础的、适合初学者实践的项目,旨在帮助开发者掌握J2EE的基本概念和应用。 【描述】:“配合我的文章:学习java后端第二步-eclipse配置tomcat并成功跑起来,可以用来...
【J2EE聊天室详解】 J2EE(Java 2 Platform, Enterprise Edition)是一个由Sun Microsystems(现已被Oracle收购...这个项目对于初学者来说是很好的实践机会,可以帮助他们巩固对J2EE框架的理解,并提升实际开发能力。