??xml version="1.0" encoding="utf-8" standalone="yes"?>日本福利片高清在线观看,99精品久久只有精品,91精品国产综合久久婷婷香蕉 http://www.aygfsteel.com/windblueos/category/43913.html行者的驿站Qcrazy duck 的程序h?/description>zh-cnSat, 06 Feb 2010 09:04:08 GMTSat, 06 Feb 2010 09:04:08 GMT60Q{载)(j)j2ee值得研究的开源项?/title><link>http://www.aygfsteel.com/windblueos/articles/312148.html</link><dc:creator>三千晴空</dc:creator><author>三千晴空</author><pubDate>Fri, 05 Feb 2010 10:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/windblueos/articles/312148.html</guid><wfw:comment>http://www.aygfsteel.com/windblueos/comments/312148.html</wfw:comment><comments>http://www.aygfsteel.com/windblueos/articles/312148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/windblueos/comments/commentRss/312148.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/windblueos/services/trackbacks/312148.html</trackback:ping><description><![CDATA[q篇文章写在我研IJ2SE、J2EEq三q后。前3q我研究?jin)J2SE的Swing、Applet、Net、RMI、Collections? IO、JNI......研究?jin)J2EE的JDBC、Sevlet、JSP、JNDI…..不久我发现这些好像太浅?jin)?x)首先Q我发现自己知道的仅仅是 java提供的大量的APIQ根本不能很好地使用?其次Q我Ҏ(gu)没有学CQ何有助于写程序的知识Q此时我也只不过能写个几늚程序。出于这个幼E的 x(chng)我研I了(jin)JDK中Collections、Logger、IO…..的源代码Q发现这个世界真的很奇Q竟然有如此的高手――利用java语言最最? 本的语法Q创造了(jin)q些优秀的Framework。从此一发不可收拾,我l研I了(jin)J2EE的部分,又发现这是一个我Ҏ(gu)不能理解的方?曄有半q停滞不 ?Qؓ(f)什么只有接口没有实现啊!后来׃一直用Tomcat、Derby{Y件突然发玎ͼ(x)?原来J2EE仅仅是一个标准,只是一个架构。真正的实现 是不同提供商提供的。接着我研I了(jin)MOM4J、OpenJMS、Mocki、HSQLD……发现q些是J2EE的实现啊!原来软g竟会(x)如此复杂Q竟?x)? 此做….规范和实现又是如何成Z体的?通过上面的研I发玎ͼ(x)原来J2EE后面竟然有太多太多理c(din)太多太多的怼!q些怼是其背后的理念――设? 模式!(很幸q,在我学java的时候,我一般学java的一个方向就?x)读一些关于设计模式的?很幸q,到能领略一点的时候能真正知道q是Z?)? 实模式就是一U思维方式、就是一U理?#8230;…模式是要q用到程序中的,只有从真正的目中才能领?x)模式的含?#8230;… <p>  学得多Q发现懂得越?在学?fn)过E中发现一些很有用Q很值得学习(fn)的开源项目,今天在此推荐l大家?/p> <p>  一、JavaServlet和JSP方向</p> <p>  很多人都是从Servlet和JSP步入J2EE的。它?yu)是J2EE的表现层Q用于向客户呈现服务器上的内宏VJ2EE很重要的斚w。不|嗦 ?大家都知道的!下面开始推荐吧!</p> <p>  1. Jakarta Tomcat</p> <p>  Apache基金?x)提供的免费的开源的Serlvet容器Q它是的Jakarta目中的一个核?j)项目,由Apache、Sun和其它一些公? (都是IT界的大鳄??qing)个人共同开发而成Q全世界l大部分Servlet和Jsp的容器都是用它?׃Sun的参与和支持Q最新的Servlet? Jsp规范总能在Tomcat中得C现?/p> <p>  不过它是一个非帔R常全的Serlvet容器Q全部源码可能有4000,对于初学者或者一般的老手可能q是比较大了(jin)!在你有能力时推荐研究! 下蝲地址Qhttp://jakarta.apache.org/tomcat/index.html</p> <p>  下面推荐两个一点的?</p> <p>  2. Jetty</p> <p>  Jetty是一个开放源码的HTTP服务器和Java serverlet容器。源代码只有1000左叻I很值得研究。有兴趣可以去http://jetty.mortbay.com/下蝲看看。我曄M(jin) 一下,只是目前没有旉?都化在博客上?jin),{博客基本定型,且内容完整了(jin)Q再q我热衷的事件吧!)</p> <p>  3. Jigsaw</p> <p>  Jigsaw是W3C开发的HTTPQ基于Java 的服务器Q提供了(jin)未来 Web 技术发展的蓝图。W3C知道?(太有名气?jin),很多标准都是它制订?有空l常ȝ看吧!)下蝲|址Qhttp://www.w3.org/Jigsaw 代码仅仅1000左叟?/p> <p>  4. Jo!</p> <p>  Jo!是一个纯Java的实C(jin)Servlet API 2.2, JSP 1.1, 和HTTP/1.1的Web服务器。它的特性包括支持servlet tag,支持SSIQ高U线E管理,虚拟LQ数据缓存,自动压羃text或HTML文gq行传输Q国际化支持Q自动重新加载Servlet、JspQ自 动重新加载web工程文g(WARs)Q支持WAR热部|和一个Swing控制台。jo!可以被用做jboss和jakarta avalon-phoenix的web容器。下载地址http://www.tagtraum.com/ 。我极力推荐大家在研ITomcat之前研究该YӞ主要是其比Tomcat多?jin),且开发者提供比较全的手册。该方向研究q两个也可以了(jin)!</p> <p>  二、JDBC方向</p> <p>  很多人都喜欢JDBCQ数据库?很深奥的东西Q一听就可以p弄人。其实等你真正研I了(jin)数据库的实现后发玎ͼ接口其实真的太简单,太完了(jin)!? 惌计如此优U的框架还是需要学?fn)的。下面就推荐几个数据库的实现?</p> <p>  1. Hypersonic SQL</p> <p>  Hypersonic SQL开源数据库方向比较行的纯Java开发的关系型数据库。好像不是JDBC兼容的,JDBC的很多高U的Ҏ(gu)都没有支持Q不q幸好支持ANSI- 92 标准 SQL语法。我推荐它主要是它的代码比较?yu)?600左叻I如此的数据库值得研究Q而且他占的空间很,大约只有160KQ拥有快速的数据库引擎。推? 你的W一个开源数据库。下载地址Qhttp://hsqldb.sourceforge.net/?/p> <p>  2. Mckoi DataBase</p> <p>  McKoiDB 和Hypersonic SQL差不多,它是GPL 的license的纯Java开发的数据库。他?JDBC Driver 是?JDBC version 3 ?Specifaction?他也是遵?SQL-92 的标准,也尽量支持新?SQL 特色, q且支持 Transaction 的功能。两个可以选一个吧!下蝲地址Qhttp://mckoi.com/database/?/p> <p>  3. Apache Derby</p> <p>  学Java的数据库我徏议用Apache Derby Q研I数据库x(chng)Z个数据库的高手我你先研究Apache Derby。Apache Derby是一个高质量的、纯 Java开发的嵌入式关pL据库引擎QIBM® 其捐献lApache开放源码社区,同时IBM的品CloudSpace是它对应的品。Derby是基于文件系l,h高度的可UL性,q且是轻? U的Q这使得它非怾于发布。主要是没有商业用户的很好的界面Q没有其太多的功能。不q对于我们用数据库、研I数据库q是极其有用的。对于中型的企? 说老实话你也不要用什么Oracle、SqlServer?jin),用Derby可以了(jin)Q何冉|开源的?只要能发挥其长处也不Ҏ(gu)?下蝲? 址Qhttp://incubator.apache.org/derby?/p> <p>  不过在没有够的能力前,不要试图L?注释和源代码15000左叻I我一q的阅读?能读下来q且能真正领?x)它Q绝寚w?你能d Derby的源代码只有两种可能Q?.你成为顶的高手――至是数据库这部分;2.你疯?jin)。选择?!!!作ؓ(f)我自己我先选择Hypersonic SQLq样的数据库先研IӞ能过q一养I再l研IDerby!不就是一q的阅读量吗!我可以化3q去研究如何做一个数据库其实q是很值得?有的人搞 IT一辈子自己什么都没有做,也根本没有研I别人的东西!</p> <p>  作ؓ(f)一个IT落后于别国若q年的、从事IT的下?#8220;外包”的国家的IT从业人员Q我认ؓ(f)q是先研I别人的优秀的东西比较好!可以先研I别? 的,然后消化Q学为己?一?j)闭门造R实在遗憾!</p> <p>  三、JMS方向</p> <p>  JMS可能对大家来说是一个比较陌生的方向!其实JMS是一个比较容易理解,Ҏ(gu)上手的方向。主要是Java消息服务QAPI也是相当单的? 不过在企业应用中相当q泛。下面就介绍几个?</p> <p>  1. MOM4J</p> <p>  MOM4J是一个完全实现JMS1.1规范的消息中间gq且向下兼容JMS1.0?.02。它提供?jin)自q消息处理存储使它独立于关pL据与 语言Q它的客L(fng)可以用Q何语a开发。它可以是一个小麻雀Q很全实C比较?它包含一个命名服务器Q一个消息服务器Q同时提供自q持箋(hu)层。设计也 相当的y妙,完全利用操作pȝ中文件系l设计的观念。代码也很少Q?50左叻I最q我在写该实现的源代码阅L面的书,希望明年q中能与大家见面!下蝲 地址Qhttp://mom4j.sourceforge.net/index.html?/p> <p>  2. OpenJMS</p> <p>  OpenJMS是一个开源的Java Message Service API 1.0.2 规范的实玎ͼ它包含有以下Ҏ(gu):(x)</p> <p>1. 它既支持点到?point-to-point)(PTP)模型和发?订阅(Pub/Sub)模型? </p> <p>  2. 支持同步与异步消息发??/p> <p>  3. JDBC持久性管理用数据库表来存储消息 ?/p> <p>  4. 可视化管理界面?/p> <p>  5. Applet支持?/p> <p>  6. 能够与Jakarta Tomcatq样的Servlet容器l合?/p> <p>  7. 支持RMI, TCP, HTTP 与SSL协议?/p> <p>  8. 客户端验??/p> <p>  9. 提供可靠消息传输、事务和消息qo(h)?/p> <p>  很好的JMS方向的开源项?我目前也在研I它的源代码!学习(fn)它可以顺便研IJNDI的实现、以?qing)网l通信的细节。这是我JMS方向研究的第? 个开源项目。代码量1600左叛_!下蝲地址Qhttp://openjms.sourceforge.net/index.html</p> <p>  3. ActiveMQ</p> <p>  ActiveMQ是一个开放源码基于Apache 2.0 licenced 发布q实C(jin)JMS 1.1。它能够与GeronimoQ轻量容器和QJava应用E序无缝的给合。主要是Apache的可以Q意的使用和发布哦!个h比较喜欢Apache 的源代码!下蝲地址Qhttp://activemq.codehaus.org/</p> <p>  4. JORAM</p> <p>  JORAM一个类gopenJMS分布在ObjectWeb之下的JMS消息中间件。ObjectWeb的品也是非常值得研究?下面我还 ?x)给大家另外一个ObjectWeb的品。下载地址Qhttp://joram.objectweb.org/</p> <p>  我个人推荐:(x)OpenJMS和ActiveMQ!</p> <p>  四、EJB方向</p> <p>  EJB一个比?#8220;高”的方向。Sun公司曄以此在分布式计算领域重拳出击。不q自从出C(jin)Spring、Hibernation……后似? 没落?q个方向单独开源的也比较少Q主要EJB是和JNDI、JDBC、JMS、JTS、JTAl合在一L(fng)是以很少有单独的。下面推荐两个不q好像也 要下载其它类库?/p> <p>  1. EasyBeans</p> <p>  ObjectWeb的一个新的项目,一个轻量的EJB3容器Q虽然还没有正式发布Q但是已l可以从它们的subversion仓库中检Z 码。代码量比较?yu)?00左叻I熟读它可以对|络~程、架构、RMI、容器的状态设计比较了(jin)解了(jin)!卛_?x)EJB又能学习(fn)其它设计Ҏ(gu)何乐而不为哦!下蝲? 址Qhttp://easybeans.objectweb.org/</p> <p>  2. OpenEJB</p> <p>  OpenEJB是一个预生成的、自包含的、可UL的EJB容器pȝQ可以被插入CQ意的服务器环境,包括应用E序服务器,W(xu)eb服务 器,J2EEq_Q?CORBA ORB和数据库{等。OpenEJB 被用? Apple的WebObjects。听h很好Q我目前没有研究q。不知道我就不推荐了(jin)。下载地址Qhttp://www.openejb.org/</p> <p>  五、J2EE容器</p> <p>  上面谈了(jin)q么多,都是J2EE的各个方向的。其实J2EE是一个规范,J2EE的品一般要求专业提供商必须提供它们的实现。这些实现本w就? J2EE容器。市(jng)Z行的J2EE容器很多Q在开源领域流行的只有很少Q很。其中最著名的是JBoss?/p> <p>  1. JBoss</p> <p>  在J2EE应用服务器领域,Jboss是发展最速的应用服务器。由于Jboss遵@商业友好的LGPL授权分发Qƈ且由开源社区开发,q 得Jbossqؓ(f)行。另外,Jboss应用服务器还h许多优秀的特质?/p> <p>  其一Q它?yu)具有革命性的JMX微内核服务作为其ȝl构;</p> <p>  其二Q它本n是面向服务的架?Service-Oriented ArchitectureQSOA);</p> <p>  其三Q它q具有统一的类装蝲器,从而能够实现应用的热部|和热卸载能力。因此,它是高度模块化的和松耦合的。Jboss用户的积极反馈告诉我 们,Jboss应用服务器是健壮的、高质量的,而且q具有良好的性能。ؓ(f)满企业U市(jng)场日益增长的需求,Jboss公司?003q开始就推出? 24*7、专业产品支持服务。同Ӟ为拓展Jboss的企业?jng)场QJboss公司q签订了(jin)许多渠道合作伙伴。比如,Jboss公司同HP? Novell、Computer Associates、Unisys{都是合作伙伴?/p> <p>  ?004q?月,Jboss公司宣布QJboss应用服务器通过?jin)Sun公司的J2EE认证。这是Jboss应用服务器发展史上至今ؓ(f)止最? 要的里程。与此同ӞJboss一直在紧跟最新的J2EE规范Q而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,q是在开源社 区,Jboss成ؓ(f)?jin)第一个通过J2EE 1.4认证的主应用服务器。现在,Jboss应用服务器已l真正发展成h企业强度(卻I支持关键UQ务的应用)的应用服务器?/p> <p>  Jboss 4.0作ؓ(f)J2EE认证的重要成果之一Q已l于2004q?月顺利发布了(jin)。同ӞJboss 4.0q提供了(jin)Jboss AOP(Aspect-Oriented ProgrammingQ面向方面编E?lg。近来,AOP吸引?jin)大量开发者的x(chng)。它提供的新的编E模式得用戯够将斚w(比如Q事?从底层业务? 辑中分离出来Q从而能够羃短Y件开发周期。用戯够单独用Jboss AOPQ即能够在Jboss应用服务器外部用它。或者,用户也可以在应用服务器环境中使用它。Jboss AOP 1.0已经?004q?0月发布了(jin)?很有名吧!可以下蝲一个用一下,下蝲地址Qhttp://www.jboss.org/</p> <p>  关于JBoss的用资料也非常多,甚至比商业Y件的q多。有Z(x)研究?</p> <p>  2. JOnAS</p> <p>  JOnAS是一个开放源代码的J2EE实现Q在ObjectWeb协会(x)中开发。整合了(jin)Tomcat或Jetty成ؓ(f)它的Web容器Q以保W合 Servlet 2.3和JSP 1.2规范。JOnAS服务器依赖或实现以下的Java APIQJCA、JDBC、JTA 、JMS、JMX、JNDI、JAAS、JavaMail 。下载地址Qhttp://jonas.objectweb.org/</p> <p>  3.Apache Geronimo</p> <p>  Apache Geronimo ?Apache 软g基金?x)的开放源码J2EE服务器,它集成了(jin)众多先进技术和设计理念? q些技术和理念大多源自独立的项目,配置和部|模型也各不相同? Geronimo能将q些目和方法的配置?qing)部|完全整合到一个统一、易用的模型中。作为符合J2EE标准的服务器QGeronimo提供?jin)丰富的功能? 和无责Q Apache 许可Q具?#8220;立即部v”式J2EE 1.4容器的各U优点,其中包括Q?/p> <p>  1. W合J2EE1.4标准的服务器 ?/p> <p>  2. 预集成的开放源码项??/p> <p>  3. l一的集成模??/p> <p>  4. 可׾~性、可理性和配置理功能?/p> <p>  我一直比较推荐Apache的品。主要是可以L自由C用。下载地址Qhttp://incubator.apache.org /projects/geronimo/</p> <p>  六、其?/p> <p>  讲了(jin)q么多大家可能很厌烦(ch)?是不是很多很多啊!其实不然Q我们不?x)的太多太多?不会(x)的太多太多了(jin)。不你是不是J2EE高手Q还是J2SE 高手Q有些东西你要绝对很_明的。例如:(x)1.Java的Collections Framework是java的数据结构了(jin)Q不仅要吃透它Q还要能按照需要扩展它Q利用其思想创徏一个自q数据l构?.|络~程肯定要会(x)吧,现在? ?qing)以后很多程序都是不在同一台机器上的,不会(x)|络怎么行哦!3.IO肯定要会(x)的吧!你的E序N不用输入输出数据?整个IO包加NIO也有600多页? 源代码哦!4.JDBC你要?x)?数据库都不会(x)Q在你的企业应用中你的数据又保存到哪里啊!文g中――太落后?jin)?典型的没有学qJ2EE。尽数据库? 后也是采用文件保存的?.Serverlet、JSp你要是做|页做网站,肯定要做到。问你一个简单的问题Q网中如何实现分页?有具体方法的在? 文章后发a?6. Ant要会(x)?java语言中发布的工具Q类gc中的make工具?.JUnit用过?单元试软g。你不要?你的软g没有bug!你牛!(? 议大家研I研I其源代码,很有用的框架Q包含大量的设计模式Q源代码不到100?看了(jin)只能感叹――高手就是高?l心(j)的朋友可以看到在你用的很多 IDE工具中都有JUnit?是它?/p> <p>  一切的一切才刚刚开?有兴,有需要你可以研究数据库连接池的框Ӟ如:(x)C3P0、Jakarta DBCP? DBPool….可以研究J2EE框架Spring……. Web框架Struts……持久层框架Hibernate…..甚至开发工具Eclipse…..Sun领导的点对点通信的JXTA…..报表工具 JFreeChart、JasperReports…..分布式网l编E的CORBA、网l通信的JGROUPS、XML解析的xerces…..(在不 l意间开源已l步入你的电(sh)脑,不信?你JDK的安装目录jdk1.6.0 src com sun org apache是XercesQ一个XML解析的著名的开?目)</p> <p>  不管怎么hq是从基本的做vQ学_J2SEQ熟d的源码,准确?jin)解其设计理念,然后分头ȝJ2EE――一口吃不成一个胖?不要贪多 贪广!脚踏实地可以了(jin)!</p> <img src ="http://www.aygfsteel.com/windblueos/aggbug/312148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/windblueos/" target="_blank">三千晴空</a> 2010-02-05 18:32 <a href="http://www.aygfsteel.com/windblueos/articles/312148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͼľ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">μ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">˻</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ׯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͩ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߰</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>