首先,明确一件事情:Java 技术既是一种高级的面向对象的编程语言,也是一个平台
    下面的文章来自:http://www.fedorachina.cn/index.php/topic,53.0.html#top

    “五一”上街买了一本《精通Eclipse Web开发——Java体系结构、工具、框架及整合应用》,回来大概看了一下,感觉不错。于是,把其中的一些概念性的东西总结出来,希望对初学者有益。 笑脸

一、Eclpise的历史
    Eclipse最初是IBM公司的一个软件产品,IBM为它投入了4000万美元的巨资。2001年11月IBM向世界宣布了两件事,第一件是创建开源项目,即IBM将Eclipse捐赠给开源社区(真有钱啊  咧嘴笑); 另外一件事是成立 Eclipse 协会(Eclipse Consortium),这个协会由一些成员公司组成,主要任务是支持并促进 Eclipse 开源项目。刚开始的时候,Eclipse的声誉并不好,受到业界的很多批评。但到了2003年3月,Eclipse 2.1版发布的时候,引起了业界的轰动。下载Eclipse的人蜂拥而至,甚至导致了服务器拥塞。
    Eclipse具有出色而有独创性的平台特性,吸引了众多公司加入它的平台,包括Oracle、HP、Sybase、Borland和Redhat等等。

二、Eclipse项目    http://www.eclipse.org/
    Eclipse平台是一个开放的集成开发工具,拥有强大的开发功能。它是建立在插件机制(发现新查插件、集成插件和运行插件)之上的。Eclipse平台 可以为开发者提供将各种工具无缝集成的功能,并为集成软件开发工具的开发、构造和运行提供基础模块,拥有一整套的公共服务集。
    Eclipse软件开发工具箱(简称SDK)是由Eclipse项目的3个子项目组合而成。每个子项目是单一的可下载包。Eclipse软件开发工具箱为 开发者提供了功能强大的开发环境和各种开发工具。所有基于Eclipse的工具都在其平台上创建。Eclipse平台又可以进一步划分为如下几个主要部 分。
  • Ant——基于Java的编译工具
  • Core——核心库
  • Debug——通用调试器
  • Scriping——支持脚本
  • SWT——标准小窗口工具箱
  • UI——用户界面
  • Update——动态更新/安装服务
  • VC——版本化和配置管理

三、常用概念及工具

1.SWT    http://www.eclipse.org/swt/
    SWT(Standard Widget Toolkit)称为标准小部件工具。它提供了一个公共的、独立于操作系统的应用程序接口。该接口主要用于实现与底层的本地窗口系统机密集成。整个 Eclipse平台界面采用了插件机制插入工具箱,并使用SWT向用户显示信息。

2.JFace    http://wiki.eclipse.org/index.php/JFace/
    JFace是一个UI工具箱,它用于开发UI功能部件的helper类,用户要实现该类是比较困难的。JFace不仅用界面框架来提供较高级别的应用程序 构造,还可以用来支持对话框、向导、操作、用户首选项和小窗口管理等。JFace是处理许多公用用户接口编程任务分类的用户接口工具集。JFace在它的 API和在实现上独立于窗口系统,并与SWT共同工作。

3.CVS    http://www.eclipse.org/eclipse/platform-cvs/
    CVS(Concurrent Version System,并发版本系统)是在UNIX中的经典的版本控制软件SCCS和RCS的基础上发展起来的。由于其强大的版本控制功能,目前己成为源代码开发 组织使用的标准版本控制系统。Eclipse平台采用Pserver或SSH协议来存取CVS资源库。在并发版本控制系统小组编程环境下,组内成员独立地 在各自的工作台内完成自己的工作。最后通过CVS资源库来共享他们的工作。
    CVS使用分支模型来支持多个独立却又相互联系的工作流程。所谓分支,就是指一个开发团队正在进行的项目进行共享和集成的地方,它可以被看成是组内成员的一个公共的工作区间,每个成员对项目的更改都会反应到这里。

4.Tomcat    http://tomcat.apache.org/
    Jakarta Tomcat服务器是在Sun公司的JSWDK基础上发展起来的一个优秀的Servlet/JSP容器。它是Apache-Jakarta软件组织的一个 子项目。它可以和大部分主流HTTP服务器一起工作。作为一个Servlet/JSP容器,Tomcat负责处理客户端的请求,把请求传送给 Servlet并把结果返回给客户端。Tomcat服务器除了能够运行Servlet和JSP,还提供Web服务器的功能。Tomcat有三种工作模式, 分别是独立的Servlet容器、进程内的Servlet容器和进程外的Servelet容器。
    TomcatPlugin是一款优秀的控制Tomcat的Eclipse插件。该插件可以实现在Eclipse的控制台中启动和关毕Tomcat,还可以用来创建Tomcat工程。

5.MySQL    http://www.mysql.com/
    MySQL数据库是众多的关系数据库产品中的一元。它的主要性能如下:
  • 提供C、C++、Java、Python、Perl、PHP和TCL的API接口。
  • 多平台:包括Solaris、SunOS、BSDI、SGIIRIX、AIX、DEC UNIX、Linux、FreeBSD、NetBSD、OpenBSD、HPUX、Windows。
  • 拥有非常灵活和安全的权限系统,对密码进行加密,可以处理大型数据。
  • 提供多种语言支持。
   
6.Struts    http://struts.apache.org/
    Struts是一种方便实用的Web应用框架。在Servlet技术和JSP技术中,Struts被用来构建Java Web应用程序的开源框架。它是属于Jakarta Project的一部分。Struts就是一个MVC框架,它提供了自己的模型、视图和控制器。模型是由实现业务逻辑的JavaBean或EJB组建组 成,在Struts框架中对应的是ActionForm;控制器由ActionServlet和Action来实现;视图就是由一组JSP文件构成的。现 分别对这三个组件进行简要介绍:
    1)模型(Model)
   在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组ActinForm Bean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通 常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有 checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色 的一部分。当逻辑简单时这个方法很适合。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。
    2)视图(View)
   视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags 以及Template Tags等。
    3)控制器(Controller)
   在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由 ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这 几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流 程的运行方向。struts-config.xml 文件配置控制器。

7.Hibernate    http://www.hibernate.org/
    Hibernate是一个基于Java的开源的持久化中间件,它在Java应用程序和关系数据库之间搭建了一座桥梁。它首先要在Java应用程序中使用, 而且要负责实现Java对象和关系数据库之间的映射。Hibernate对JDBC做了轻量级的封装,同时向上层应用提供了面向对象的数据访问方式。其 实,Hibernate提供的是ORM(Object/Relation Mapping)映射服务,也就是对象——关系映射,把关系数据库转化成对象。

8.Spring    http://www.springframework.org/
   Spring是轻量级的J2EE应用程序框架。它主要由控制反转(IoC,Inversion of Control)、面向方面编程(Aspect-Oriented Programming,AOP)和抽象服务三部分构成,其插件式的架构降低了组件之间的依赖性。以下将对这三部分分别做简要介绍。
    Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立, 也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案 。Spring的核心概念是IoC,IoC的抽象概念是“依赖关系的转移”,像“高层模组不应该依赖低层模组,而是模组都必须依赖于抽象”是 IoC的一种表现,“实现必须依赖抽象,而不是抽象依赖实现”也是IoC的一种表现,“应用程序不应依赖于容器,而是容器服务于应用程序”也是IoC的一 种表现。
    面向方面编程是当今软件开发的一大模式。它使得构建并实现大型的企业级的开发变得更加简单。借助Spring AOP,开发者能够更高效地使用J2EE企业服务。
    Srping抽象服务,借助于各种J2EE API抽象,把各种不同的J2EE API统一起来。这样开发者能够迅速掌握各种J2EE API的核心内容,能够一致地使用J2EE技术,减少代码量,精简系统。
    通过XML配置文件,开发者们可以在运行的时候连接不同的应用组件。目前存在3种依赖注入类型:基于设置的方法、基于构建器的方法和基于接口的注入方法。 Spring的IoC支持前两种注入方法。因此,通过Spring开发者可以通过构建器或者设置值的方法创建对象,并对对象进行管理。

9.JBoss    http://www.jboss.org/
    JBoss服务器是一个优秀的轻量级的J2EE应用服务器。作为一个经过J2EE1.4认证的免费应用服务器,JBoss是目前市场上使用最广泛的开放源 代码的应用服务器之一。它的架构具有高度的灵活性和易用性,这就使得JBoss成为了刚开始从事J2EE开发的新手的理想选择,也可以作为高级架构师按照 需求来制定对应服务的中间件平台。虽然JBoss核心服务仅提供EJB服务器,而不包括Servlet和Web容器,不过它可以和Tomcat完美地结合 在一起来支持整个J2EE系统。JBoss采用JMX API来实现软件模块的集成与管理。关于JBoss的详细资料请参阅其主页 http://www.jboss.org
   
10.Lomboz    http://forge.objectweb.org/projects/lomboz
    Lomboz插件是一个在Eclipse上专门支持J2EE开发的插件,它有以下几个主要功能:
  • 各种网页标记和JSP关键字高亮显示。
  • 对JSP的语法进行检查。
  • war文件和EJB档案(JAR)文件的部署。
  • 利用Wizard向导来完成Web应用和EJB应用的构建和部署。
  • 利用XDoclet来完成EJB接口和部署描述符的自动生成。
  • 利用Wizard向导来新建EJB客户端测试程序。
  • 在各种容器如Tomcat、JBoss和WebLogic上进行调试。

11.JUnit    http://www.junit.org/index.htm
    JUnit是一个开放源代码的Java测试框架,用在编写和运行可重复的测试上。它是单元测试框架xUnit的一个实例。JUnit非常小巧,但是功能却非常强大。对不同性质的被测试对象,如Class、JSP、Servlet等,JUnit有不同的使用技巧。

JUnit有如下特性:
  • 用于测试希望结果的断言
  • 用于共享共同测试数据的测试工具
  • 用于方便地组织和运行测试的测试套件
  • 星图形和文本的测试运行器

JUnit的优点:
  • 可以使测试代码与产品代码分开。这更有利于代码的打包发布和测试代码的管理。
  • 针对某一类的测试代码,通过较少的改动便可以应用另一个类的测试,JUnit提供了一个编写测试类的框架,使测试代码的编写更加方便。
  • 易于集成到程序的构建过程中。JUnit和Ant的结合还可以实施增量开发。
  • JUnit的源代码时公布的,故而可以进行二次开发。
  • JUnit具有很强的扩展性,可以方便地对Junit进行扩展。

12.Ant    http://ant.apache.org/
Ant(Another Neat Tool)是一款很好的变异部署工具,它是Apache软件基金会Jakarta项目中的一个子项目,它有以下优点:
  • 跨平台性:Ant是用纯Java语言编写的,所以具有很好的跨平台性。
  • 操 作简单:Ant是由一个内置任务和可选任务构成的。Ant运行时需要一个XML文件(构建wenjian)。Ant通过调用target树,就可以执行各 种task。每个task实现了特定的接口对象。由于Ant构建文件是XML格式的文件,所以很容易维护和书写,而且结构很清晰。
  • Ant可以集成到开发环境中:由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。

13.通用日志包、Log4j、SimpleLog、NoOpLog
    Apache通用日志包是Apache组织的开源项目。它负责向开发者提供一系列通用的日志接口。用户可以自由地选择和实现通用日志接口。通用日志包目前支持以下几个日志器。
  • Log4j日志器是一个开放源代码项目。它由Logger、Appender和Layout这三个主要的组建构成。http://logging.apache.org/
  • SimpleLog日志器在通用日志包中自带了org.apache.commons.logging.impl.SimpleLog日志实现类。它实现了Log接口,把日志消息都输出到系统错误流System.err中。http://www.simplelog.net/
  • NoOpLog日志器在通用日志包中自带了org.apache.commons.logging.impl.NoOpLog日志实现类,实现了Log接口。其输出日志的方法中不进行任何操作。
其中,SimpleLog和NoOpLog日志器是通用日志包自带的,Log4j日志器是第三方的软件。

14.MyEclipse    http://www.myeclipseide.com/
    MyEclipse是Eclipse的商业插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
   Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM 工具、Spring和Web services支持,以及新的Oracle数据库开发,MyEclipse 5.0继续为业界提供全面的产品。

文章来源:http://tangwei312tom.blog.163.com/blog/static/22473192200833082510494