现在的位置: 首页 > 综合 > 正文

常用技术汇编

2012年11月10日 ⁄ 综合 ⁄ 共 6916字 ⁄ 字号 评论关闭

常用技术汇编

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

一、       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/XQueryXSLT以及W3C的文档对象模型(DOM)。

相关的工具有:

(1)       JDOM(常用):面向Java的读、写和操作XML文档的APIhttp://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引擎,支持JDOMhttp://jaxen.org/

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

三、       Web开发与J2EE技术

熟悉以下Web开发技术:

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

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

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

¨          Java数据库链接(JDBC

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

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

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

¨          AJAX技术,了解基本原理

¨          名字目录服务(JNDI

¨          消息服务(JMS

¨          安全服务(JAAS

¨          Spring MVC框架

¨          EJB技术

相关的工具有:

(1)       Jakarta Tomcat常用ApacheSerlvet容器http://jakarta.apache.org/tomcat,了解其他的服务器JBossJetty

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

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

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

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

(6)    AJAX框架:见http://ajaxpatterns.org/Java_Ajax_Frameworks,推荐看看Prototypehttp://www.prototypejs.org/)、DWRhttp://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的新标准如JSR181WSDL2.0等,也提供了Web服务的通用调用客户端,http://xfire.codehaus.org/

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

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

(5)    SOAP with Attachments API for JavaSAAJ):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数据库编程技术,熟悉JDBCHibernate技术,熟悉在Web应用中如何进行数据库访问配置,如数据源的配置。

相关的工具有:

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

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

六、       开发工具与测试技术

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

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

相关的工具有:

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

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

(3)       WTPWeb Tools Platform),是一个开发J2EE Web应用程序的Eclipse插件,包含一个源码编辑器可以用来编辑HTML, Javascript, CSS, JSP, SQL, XML, DTD, XSD, WSDL、一个图形编辑器用来编辑XSDWSDLJ2EE项目构建器和一个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 ProjectTPTP),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/XMLN3N-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:一个用于存储,查询,解析RDFJava框架。它可被配置作为一个Web服务器或当一个Java包来使用。支持SPARQLSeRQLRDF查询语言,支持的存储模型包括内存,文件以及关系数据库。相对于JenaSesame更像一个RDF数据库,网上的评测在存取效率上,Sesame占优势,但是其本身只支持RDF/RDFShttp://www.openrdf.org/

十、       其他

(1)       Apache commons项目

Apache Commonshttp://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已经成为运用最广的缓存方案,JbossHibernateSpring等都对其有支持。

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

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

主页 http://www.opensymphony.com/quartz/

抱歉!评论已关闭.