您的位置:首页 > 其它

常用技术汇编

2008-09-18 08:53 288 查看

常用技术汇编

说明:比较常用的技术已经用粗体标示,其他的技术可以根据需要进行选择,或者在用到时再了解。技术在不断发展,应用也在不断变化,所以本文档也随之不断的修正,欢迎大家提出修改意见。

一、 Java语言与设计模式

精通Java语言,包括基本语法、类装载路径(classpath)以及常用类的使用,常用类如lang/util/ io/net/sql/math/rmi等包下的类,其他的如awt/swing等关于GUI界面相关的类可以在需要时再学习。推荐书籍:《Java编程思想》、《深入Java虚拟机》。

熟悉常用的设计模式如Factory(工厂模式)、Singleton(单态模式)、Observer(观察者模式)、Command(命令模式)等等,推荐四人帮写的《设计模式:可复用面向对象软件的基础》以及板桥里人的一个系统的讲解,见http://www.jdon.com/designpatterns/

二、 XML技术

熟悉XML的语法及XML Schema,了解相关的技术如XPath/XQuery、XSLT以及W3C的文档对象模型(DOM)。

相关的工具有:

(1) JDOM(常用):面向Java的读、写和操作XML文档的API,http://www.jdom.org/

(2) Xerces:由Apache组织所推动的一项XML文档解析开源项目,使用起来没有JDOM来得直观,但是功能很全,http://xml.apache.org/xerces-j/

(3) XMLBeans:一个XML-Java绑定工具,利用它可以很方便地解析XML文档,支持直接从XML Schema文件生成Java类,http://xmlbeans.apache.org/

(4) Jaxen:一个用Java开发的XPath引擎,支持JDOM,http://jaxen.org/

(5) Xalan:一套xslt处理器,用来将XML文件转换为HTML,TEXT和XML等其他类型文件格式,http://xml.apache.org/xalan-j/

三、 Web开发与J2EE技术

熟悉以下Web开发技术:

¨ 熟练掌握网页编程技术,包括HTML/CSS/JavaScript以及HTTP协议,了解如何使用JavaScript控制DOM文档。

¨ 标准Web应用的构建和配置,重点熟悉标准Web应用的目录结构、基本原理、web.xml每个配置项的意义。

¨ JSP与Servlet,熟悉基本原理,熟练掌握JSP标签以及web.xml中的相关配置项。

¨ Java数据库链接(JDBC)

¨ 日志记录(Logging),知道调试级别的概念,熟悉配置文件的设置。

¨ 数量掌握Struts MVC框架,掌握开发基于Struts的Web应用

了解以下技术,在开发需要时再深入学习:

¨ AJAX技术,了解基本原理

¨ 名字目录服务(JNDI)

¨ 消息服务(JMS)

¨ 安全服务(JAAS)

¨ Spring MVC框架

¨ EJB技术

相关的工具有:

(1) Jakarta Tomcat常用:Apache的Serlvet容器,http://jakarta.apache.org/tomcat,了解其他的服务器JBoss、Jetty。

(2) Log4j常用:日志输出工具,调试级别的概念,日志输出控制,熟悉配置文件的设置,http://logging.apache.org/log4j/,另:log4javascript项目支持JavaScript的调试。

(3) Struts/Struts-Layout(常用):一个基于基于MVC的Web开发框架,Struts-Layout包含很多常用的JSP标签,http://struts.apache.org/,常用的第三方JSP标记包还有displytagAjaxTags等等

(4) ActiveMQ:一个消息中间件,实现了JMS 1.1。它能够与Tomcat等轻量级Web服务器和其他Java应用程序无缝的给合,http://activemq.codehaus.org/

(5) Spring:一个流行的基于MVC的Web框架,http://www.springframework.org/

(6) AJAX框架:见http://ajaxpatterns.org/Java_Ajax_Frameworks,推荐看看Prototype(http://www.prototypejs.org/)、DWR(http://www.getahead.ltd.uk/dwr/),在项目中可以试试,还比较简单。

四、 Web服务相关技术

熟悉SOA的基本原理,掌握SOAP协议、WSDL文档以及UDDI,能根据需求构建和部署Web服务,了解Web服务调用技术(有时也叫客户端或中介),了解ESB(企业服务总线)。

相关的工具有:

(1) Axis(常用):Axis 是Apache社区开发的SOAP服务器,其最初起源于IBM的“SOAP4J”,提供了WSDL支持和生成、TCP/IP监视器、Web服务调用客户端等组件,http://ws.apache.org/axis/

(2) XFire(常用):XFire是与Axis 2并列的新一代WebService框架,支持一系列Web Service的新标准如JSR181、WSDL2.0等,也提供了Web服务的通用调用客户端,http://xfire.codehaus.org/

(3) SoapUI:SoapUI提供一个工具通过soap/http来检查、调用、实现Web Service和Web Service的功能/负载/符合性测试。该工具既可作为一个桌面应用软件使用,可以清楚的看到Web服务的调用过程,是一个很好的学习Web服务原理的工具,也是服务测试工具,故强烈推荐使用。http://www.soapui.org/

(4) WSDL4J:WSDL文件解析包,http://sourceforge.net/projects/wsdl4j,很多成熟工具都使用了此解析包。

(5) SOAP with Attachments API for Java(SAAJ):SAAJ是在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范。顾名思义,SAAJ支持带附件的SOAP消息。它与WSDL4J一样属于比较底层的技术,一般比较少用,https://saaj.dev.java.net/

(6) OpenESB:该项目实现了一个运行期企业服务总线(ESB),使用JBI(Java业务集成)作为核心基础。OpenESB可以让你集成企业应用与Web Service松散地连接成复合的应用程序。这使得你可以无缝地组合与拆解该复合应用程序,并认识到一个真正面向服务架构(SOA)的优点。https://open-esb.dev.java.net/

五、 数据库技术

需要熟练掌握的技术包括:

¨ 数据库建模技术,即根据需求进行数据库设计,熟悉表、数据项、数据类型、主外键等概念以及SQL语言,熟练掌握MySQL的使用。

¨ Java数据库编程技术,熟悉JDBC、Hibernate技术,熟悉在Web应用中如何进行数据库访问配置,如数据源的配置。

相关的工具有:

(1) MySQL/SQL Server(常用),了解其他的数据库如纯Java的关系型数据库HSQLDB(Hypersonic SQL)、商业数据库Oracle等的使用。

(2) Hibernate(常用):Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。熟悉config配置文件和HBM文件的编写,了解HQL语言,http://www.hibernate.org/

六、 开发工具与测试技术

熟练使用Eclipse开发工具以及常用的插件,了解Eclipse的插件框架。

测试方面,掌握基于JUnit的单元测试技术,在项目中要求至少对public方法都要有单元测试。了解测试先行的极限开发理念。另外了解一些Java性能测试方面的工具,如Eclipse的TPTP项目。

相关的工具有:

(1) Eclipse(常用)http://www.eclipse.org/

(2) Junit测试框架(常用)http://www.junit.org/

(3) WTP(Web Tools Platform),是一个开发J2EE Web应用程序的Eclipse插件,包含一个源码编辑器可以用来编辑HTML, Javascript, CSS, JSP, SQL, XML, DTD, XSD, 和WSDL、一个图形编辑器用来编辑XSD与WSDL、J2EE项目构建器和一个J2EE向导工具、一个Web服务创建向导和管理器,和WS-I 测试工具、一个数据库访问,查询工具等。详见http://www.eclipse.org/webtools/

(4) TomcatPlugin,支持Tomcat插件,http://www.sysdeo.com/eclipse/tomcatplugin

(5) Properties Editor,编辑java的属性文件,并可以自动存盘为Unicode格式,http://propedit.sourceforge.jp/index_en.html

(6) Eclipse Test & Performance Tools Platform Project(TPTP),Eclipse的测试与性能工具,可以清晰的看到程序运行时的时空使用率,http://www.eclipse.org/tptp/

七、 代码管理与项目构建

熟练掌握ANT,熟悉常用的Task,能使用ANT自行进行项目的构建和部署,另外,了解Maven项目构建工具。ANT类似于Unix环境的Make工具,而Maven除了支持程序构建和部署之外,还增加了很多项目管理的功能。Maven有一个类似Eclipse的插件架构,可以非常方便的加入新的项目构建功能。

代码版本管理方面,熟悉SVN的使用(主要时客户端工具的使用),理解版本管理背后的协作开发的理念。了解SVN服务器的搭建。

相关的工具有:

(1) ANT(常用)http://ant.apache.org/http://ant.apache.org/manual/index.html上提供了大部分的Task的描述,多看看会发现ANT能做的事情真的太多了。

(2) Maven,现在大部分的开源项目都基于Maven进行管理了,具有自动测试、丰富的项目报告、站点生成等等功能,http://maven.apache.org/

(3) SVN/TortoiseSVN(常用)http://subversion.tigris.org/,中文版本的文档可以在http://www.subversion.org.cn/找到。

八、 工作流引擎与建模工具

BPEL

Active BPEL

Active

九、 语义网技术

理解语义网的基本原理,了解语义网技术能用来做什么,又难以做什么。具体了解:

¨ 理解元数据的概念

¨ 资源描述框架语言及模式(RDF/RDFS),了解RDF查询语言SPARQL。

¨ 本体及本体描述语言(OWL)。

¨ 语义Web服务(OWL-S/WSDL-S)

¨ 以上知识描述语言的表达能力及其逻辑解释

推荐入门书籍:宋炜、张铭的《语义网简明教程》

常去中国万维网联盟(http://w3china.org/)及其bbs逛逛,另外,http://www.schemaweb.info/上有很多使用RDFS/OWL定义的实例。

上述的语言和规范都可以在w3c的网站上找到,下面列出一些常用的工具:

(1) Jena:一个基于Java的语义网开发工具包。功能包括:提供RDFOWL的编程接口;支持RDF/XML、N3和N-Triples格式的RDF数据的读写;支持到文件及各种关系数据库的持久化;支持RDF查询语言SPARQL;内置基于规则的推理引擎,http://jena.sourceforge.net/

(2) Protege:一个应用最广的本体编辑工具,由斯坦福主持开发。最基本的功能是支持RDF/RDFS/OWL的图形化编辑,本身是插件架构,可以通过安装插件增加功能,如安装OWL-S编辑器、OWL推理机等等,http://protege.stanford.edu/

(3) OWL-API:另一个较常用的操作OWL的编程工具包,网上很多人说对于OWL的操作比Jena用起来方便,但是功能相对单一,http://owl.man.ac.uk/api.shtml

(4) Sesame:一个用于存储,查询,解析RDF的Java框架。它可被配置作为一个Web服务器或当一个Java包来使用。支持SPARQL和SeRQL等RDF查询语言,支持的存储模型包括内存,文件以及关系数据库。相对于Jena,Sesame更像一个RDF数据库,网上的评测在存取效率上,Sesame占优势,但是其本身只支持RDF/RDFS,http://www.openrdf.org/

十、 其他

(1) Apache commons项目

Apache Commons(http://jakarta.apache.org/commons)是一个非常有用的工具包,解决各种实际的通用问题,下面是一个常用的工具包简述表(其他的见其网站):

¨ BeanUtils提供对 Java 反射API的包装

¨ Collections提供一个类包来扩展和增加标准的集合操作

¨ Configuration 工具对各种各式的配置和参考文件提供读取和写入帮助

¨ DbUtils 是一个 JDBC helper 类库,完成数据库任务的简单的资源清除代码.

¨ FileUpload 使得容易在Servlet中的加入强大和高性能的文件上传能力

¨ HttpClient 提供了可以工作于HTTP协议客户端的一个框架

¨ IO 是一个 I/O 工具集

¨ Lang 提供了许多许多通用的工具类集,提供了一些java.lang中类的扩展功能

¨ Logging 是一个各种 logging API实现的包裹类

¨ Math 是一个轻量的,自包含的数学和统计组件,解决了许多非常通用但没有及时出现在Java标准语言中的实践问题

¨ Net 是一个网络工具集,基于 NetComponents 代码,包括 FTP 客户端等等。

当你需要某个功能时,而这个功能又比较通用,首先在Apache Commons看有没有实现,如果没有再自行开发。例如,在调试数组时,想把数组的都元素打印出来,那可以使用ArrayUtils.toString方法。

(2) OSCache-工业级的J2EE缓存实现

官方网站:http://www.opensymphony.com/oscache/。当我们需要改进性能时,一个常用的方法是在不同层次增加缓存,减少重复的计算过程,这时可以考虑使用OSCache。它提供了JSP缓存、HTTP Response缓存、通用缓存(任意的Java对象)以及O/R映射的数据库访问等不同层次的缓存支持。还包含一些提高可伸缩性的高级特性,可以使用内存、硬盘空间、同时使用内存和硬盘作为缓存区,而且支持集群。

当前OSCache已经成为运用最广的缓存方案,Jboss、Hibernate、Spring等都对其有支持。

(3) Quartz-任务调度工具包

Quartz 是OpenSymphony社区关于任务调度的一个开源项目,可以与J2EE或J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个任务这样复杂的日程序表。任务可以做成标准的Java组件或 EJBs。

主页 http://www.opensymphony.com/quartz/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: