javaåºç¡ï¼ä¸å¤§ä¸»æµæ°æ®åºmysqlï¼orcaleï¼sql serverï¼ç¶åæ¯j2eeçç¸å
³ç¥è¯ï¼ä¹å°±æ¯javaå¼åæ¡æ¶ã
Spring Framework
Springæ¯ä¸ä¸ªè§£å³äºè®¸å¤å¨J2EEå¼åä¸å¸¸è§çé®é¢ç强大æ¡æ¶ã
Springæä¾äºç®¡çä¸å¡å¯¹è±¡çä¸è´æ¹æ³å¹¶ä¸é¼å±äºæ³¨å
¥å¯¹æ¥å£ç¼ç¨èä¸æ¯å¯¹ç±»ç¼ç¨çè¯å¥½ä¹ æ¯ãSpringçæ¶æåºç¡æ¯åºäºä½¿ç¨JavaBeanå±æ§ç
Inversion of
Control容å¨ãç¶èï¼è¿ä»
ä»
æ¯å®æ´å¾æ¯ä¸çä¸é¨åï¼Springå¨ä½¿ç¨IoC容å¨ä½ä¸ºæ建å®å
³æ³¨æææ¶æå±çå®æ´è§£å³æ¹æ¡æ¹é¢æ¯ç¬ä¸æ äºçã
Springæä¾äºå¯ä¸çæ°æ®è®¿é®æ½è±¡ï¼å
æ¬ç®ååææççJDBCæ¡æ¶ï¼æ大çæ¹è¿äºæç并ä¸åå°äºå¯è½çé误ãSpringçæ°æ®è®¿é®æ¶æè¿éæäº
Hibernateåå
¶ä»O/R mapping解å³æ¹æ¡ãSpringè¿æä¾äºå¯ä¸çäºå¡ç®¡çæ½è±¡ï¼å®è½å¤å¨åç§åºå±äºå¡ç®¡çææ¯ï¼ä¾å¦JTAæè
JDBCäºå¡æä¾ä¸ä¸ªä¸è´çç¼ç¨æ¨¡åãSpringæä¾äºä¸ä¸ªç¨æ åJavaè¯è¨ç¼åçAOPæ¡æ¶ï¼å®ç»POJOsæä¾äºå£°æå¼çäºå¡ç®¡çåå
¶ä»ä¼ä¸äºå¡
--å¦æä½ éè¦--è¿è½å®ç°ä½ èªå·±çaspectsãè¿ä¸ªæ¡æ¶è¶³å¤å¼ºå¤§ï¼ä½¿å¾åºç¨ç¨åºè½å¤æå¼EJBçå¤ææ§ï¼åæ¶äº«åçåä¼ ç»EJBç¸å
³çå
³é®æå¡ã
Springè¿æä¾äºå¯ä»¥åIoC容å¨éæç强大èçµæ´»çMVC Webæ¡æ¶ã.
WebWork
WebWorkæ¯ç±OpenSymphonyç»ç»å¼åçï¼è´åäºç»ä»¶åå代ç éç¨çæåºå¼MVC模å¼J2EE
Webæ¡æ¶ãWebWorkç®åææ°çæ¬æ¯2.1ï¼ç°å¨çWebWork2.xå身æ¯Rickard
Obergå¼åçWebWorkï¼ä½ç°å¨WebWorkå·²ç»è¢«æåæäºXwork1åWebWork2两个项ç®ã
Xworkç®æ´ãçµæ´»åè½å¼ºå¤§ï¼å®æ¯ä¸ä¸ªæ åçCommand模å¼å®ç°ï¼å¹¶ä¸å®å
¨ä»webå±è±ç¦»åºæ¥ã
Xworkæä¾äºå¾å¤æ ¸å¿åè½ï¼å端æ¦æªæº(interceptor)ï¼è¿è¡æ¶è¡¨åå±æ§éªè¯ï¼ç±»å转æ¢ï¼å¼ºå¤§ç表达å¼è¯è¨(OGNL â the
Object Graph Notation Language)ï¼IoC(Inversion of Controlåç½®æ§å¶)容å¨çã
WebWork2建ç«å¨Xworkä¹ä¸ï¼å¤çHTTPçååºå请æ±ãWebWork2使ç¨ServletDispatcherå°HTTP请æ±çåæ
Action(ä¸å¡å±Actionç±»),
session(ä¼è¯)application(åºç¨ç¨åº)èå´çæ å°ï¼request请æ±åæ°æ å°ãWebWork2æ¯æå¤è§å¾è¡¨ç¤ºï¼è§å¾é¨åå¯ä»¥ä½¿ç¨
JSP, Velocity, FreeMarker,
JasperReportsï¼XMLçãå¨WebWork2.2ä¸æ·»å äºå¯¹AJAXçæ¯æï¼è¿æ¯ææ¯æ建å¨DWRä¸Dojoè¿ä¸¤ä¸ªæ¡æ¶çåºç¡ä¹ä¸.
Struts
Strutsæ¯ä¸ä¸ªåºäºSun
J2EEå¹³å°çMVCæ¡æ¶ï¼ä¸»è¦æ¯éç¨ServletåJSPææ¯æ¥å®ç°çãç±äºStrutsè½å
å满足åºç¨å¼åçéæ±ï¼ç®åæç¨ï¼ææ·è¿
éï¼å¨è¿å»çä¸å¹´ä¸é¢åå
³æ³¨ãStrutsæServletãJSPãèªå®ä¹æ ç¾åä¿¡æ¯èµæº(message
resources)æ´åå°ä¸ä¸ªç»ä¸çæ¡æ¶ä¸ï¼å¼å人åå©ç¨å
¶è¿è¡å¼åæ¶ä¸ç¨åèªå·±ç¼ç å®ç°å
¨å¥MVC模å¼ï¼æ大çèçäºæ¶é´ï¼æ以说Strutsæ¯ä¸ä¸ªé常ä¸éçåºç¨æ¡æ¶ã
Hibernate
Hibernateæ¯ä¸ä¸ªå¼æ¾æºä»£ç ç对象å
³ç³»æ å°æ¡æ¶ï¼å®å¯¹JDBCè¿è¡äºé常轻é级ç对象å°è£
ï¼ä½¿å¾Javaç¨åºåå¯ä»¥éå¿æ欲ç使ç¨å¯¹è±¡ç¼ç¨æç»´æ¥æ纵æ°æ®åºã
Hibernateå¯ä»¥åºç¨å¨ä»»ä½ä½¿ç¨JDBCçåºåï¼æ¢å¯ä»¥å¨Javaç客æ·ç«¯ç¨åºå®ç¨ï¼ä¹å¯ä»¥å¨Servlet/JSPçWebåºç¨ä¸ä½¿ç¨ï¼æå
·é©å½æä¹çæ¯ï¼Hibernateå¯ä»¥å¨åºç¨EJBçJ2EEæ¶æä¸å代CMPï¼å®ææ°æ®æä¹
åçéä»»ãEclipseå¹³å°ä¸çHibernateè¾
å©å¼åå·¥å
·:ãHibernate
Synchronizerã
Quartz
Quartzæ¯OpenSymphonyå¼æºç»ç»å¨Job
schedulingé¢ååä¸ä¸ªå¼æºé¡¹ç®,å®å¯ä»¥ä¸J2EEä¸J2SEåºç¨ç¨åºç¸ç»åä¹å¯ä»¥åç¬ä½¿ç¨ãQuartzå¯ä»¥ç¨æ¥å建ç®åæ为è¿è¡å个ï¼ç¾ä¸ªï¼çè³æ¯å¥½å ä¸ä¸ªJobsè¿æ ·å¤æçæ¥ç¨åºè¡¨ãJobså¯ä»¥åææ åçJavaç»ä»¶æ
EJBsãQuartzçææ°çæ¬ä¸ºQuartz 1.5.0ã
Velocity
Velocityæ¯ä¸ä¸ªåºäºjavaç模æ¿å¼æ(template engine)ãå®å
许任ä½äººä»
ä»
ç®åç使ç¨æ¨¡æ¿è¯è¨(template
language)æ¥å¼ç¨ç±java代ç å®ä¹ç对象ãå½Velocityåºç¨äºwebå¼åæ¶ï¼çé¢è®¾è®¡äººåå¯ä»¥åjavaç¨åºå¼å人ååæ¥å¼åä¸ä¸ªéµå¾ªMVCæ¶æçwebç«ç¹ï¼ä¹å°±æ¯è¯´ï¼é¡µé¢è®¾è®¡äººåå¯ä»¥åªå
³æ³¨é¡µé¢çæ¾ç¤ºææï¼èç±javaç¨åºå¼å人åå
³æ³¨ä¸å¡é»è¾ç¼ç ãVelocityå°java代ç ä»web页é¢ä¸å离åºæ¥ï¼è¿æ ·ä¸ºwebç«ç¹çé¿æç»´æ¤æä¾äºä¾¿å©ï¼åæ¶ä¹ä¸ºæ们å¨JSPåPHPä¹å¤åæä¾äºä¸ç§å¯éçæ¹æ¡ã
Velocityçè½åè¿ä¸æ¢webç«ç¹å¼åè¿ä¸ªé¢åï¼ä¾å¦ï¼å®å¯ä»¥ä»æ¨¡æ¿(template)产çSQLåPostScriptãXMLï¼å®ä¹å¯ä»¥è¢«å½ä½ä¸ä¸ªç¬ç«å·¥å
·æ¥äº§çæºä»£ç åæ¥åï¼æè
ä½ä¸ºå
¶ä»ç³»ç»çéæç»ä»¶ä½¿ç¨ãVelocityä¹å¯ä»¥ä¸ºTurbine
webå¼åæ¶ææä¾æ¨¡æ¿æå¡(template
service)ãVelocity+Turbineæä¾ä¸ä¸ªæ¨¡æ¿æå¡çæ¹å¼å
许ä¸ä¸ªwebåºç¨ä»¥ä¸ä¸ªçæ£çMVC模åè¿è¡å¼åããVeloEclipse
ï¼Velocityå¨Eclipseå¹³å°ä¸çä¸ä¸ªè¾
å©å¼åæ件ã
IBATIS
使ç¨ibatis æä¾çORMæºå¶ï¼å¯¹ä¸å¡é»è¾å®ç°äººåèè¨ï¼é¢å¯¹çæ¯çº¯ç²¹çJavaå¯¹è±¡ï¼ è¿ä¸å±ä¸éè¿Hibernate å®ç°ORM
èè¨åºæ¬ä¸è´ï¼è对äºå
·ä½çæ°æ®æä½ï¼Hibernate ä¼èªå¨çæSQL è¯å¥ï¼èibatis åè¦æ±å¼åè
ç¼åå
·ä½çSQL
è¯å¥ãç¸å¯¹Hibernateç âå
¨èªå¨âORMæºå¶èè¨ï¼ibatis
以SQLå¼åçå·¥ä½éåæ°æ®åºç§»æ¤æ§ä¸ç让æ¥ï¼ä¸ºç³»ç»è®¾è®¡æä¾äºæ´å¤§çèªç±ç©ºé´ãä½ä¸ºâå
¨èªå¨âORM å®ç°çä¸ç§æçè¡¥å
ï¼ibatis çåºç°æ¾
å¾å«å
·æä¹ã
Compiere ERP&CRM
Compiere
ERP&CRM为å
¨çèå´å
çä¸å°åä¼ä¸æä¾ç»¼åå解å³æ¹æ¡ï¼è¦çä»å®¢æ·ç®¡çãä¾åºé¾å°è´¢å¡ç®¡ççå
¨é¨é¢åï¼æ¯æå¤ç»ç»ãå¤å¸ç§ãå¤ä¼è®¡æ¨¡å¼ãå¤ææ¬è®¡ç®ãå¤è¯ç§ãå¤ç¨å¶çå½é
åç¹æ§ãæäºå®è£
ãæäºå®æ½ãæäºä½¿ç¨ãåªéè¦ççå 个å°æ¶ï¼æ¨å°±å¯ä»¥ä½¿ç¨ç³è´-éè´-å票-ä»æ¬¾ãæ¥ä»·-订å-å票-æ¶æ¬¾ã产åä¸å®ä»·ãèµäº§ç®¡çã客æ·å
³ç³»ãä¾åºåå
³ç³»ãåå·¥å
³ç³»ãç»è¥ä¸ç»©åæç强大åè½äºã
Roller Weblogger
è¿ä¸ªweblogging
设计å¾æ¯è¾ç²¾å·§ï¼æºä»£ç æ¯å¾å¥½çå¦ä¹ èµæãå®æ¯æwebloggingåºæçç¹æ§å¦ï¼è¯è®ºåè½ï¼æè§å³æå¾HTMLç¼è¾ï¼TrackBackï¼æä¾é¡µé¢æ¨¡æ¿ï¼RSS
syndication,blogroll管çåæä¾ä¸ä¸ªXML-RPC æ¥å£ã
Eclipse
Eclipseå¹³å°æ¯IBMåå¼åæºç 社åºæèµ çå¼åæ¡æ¶ï¼å®ä¹æ以åºå并ä¸æ¯å 为IBM宣称æå
¥å¼åçèµéæ»æ°
â4åä¸ç¾å
ï¼èæ¯å 为å¦æ¤å·¨å¤§çæå
¥æ带æ¥çææï¼ä¸ä¸ªæççãç²¾å¿è®¾è®¡ç以åå¯æ©å±çä½ç³»ç»æã
XPlanner
XPlanner ä¸ä¸ªåºäºWebçXPå¢é计ååè·è¸ªå·¥å
·ãXPç¬ç¹çå¼åæ¦å¿µå¦iterationãuser
storiesçï¼XPlanneré½æä¾äºç¸å¯¹åºçç管çå·¥å
·ï¼XPlanneræ¯æXPå¼åæµç¨ï¼å¹¶è§£å³å©ç¨XPææ³æ¥å¼å项ç®æ碰å°çé®é¢ã
XPlannerç¹ç¹å
æ¬ï¼ç®åç模åè§åï¼èæç¬è®°å¡(Virtual note cards),iterationsãuser
storiesä¸å·¥ä½è®°å½ç追踪ï¼æªå®æstorieså°èªå¨è¿ä»£ï¼å·¥ä½æ¶é´è¿½è¸ªï¼çæå¢éæçï¼ä¸ªäººå·¥æ¶æ¥è¡¨ï¼SOAPçé¢æ¯æã
HSQLDB
HSQLDB(Hypersonic SQL)æ¯çº¯Javaå¼åçå
³ç³»åæ°æ®åº,并æä¾JDBC驱å¨ååæ°æ®ãæ¯æANSI-92 æ å
SQLè¯æ³ãèä¸ä»å ç空é´å¾å°ã大约åªæ160K,æ¥æå¿«éçæ°æ®åºå¼æã
Liferay
代表äºå®æ´çJ2EEåºç¨ï¼ä½¿ç¨äºWebãEJB以åJMSçææ¯ï¼ç¹å«æ¯å
¶åå°çé¢é¨å使ç¨Struts
æ¡æ¶ææ¯ï¼åºäºXMLçportleté
ç½®æ件å¯ä»¥èªç±å°å¨ææ©å±ï¼ä½¿ç¨äºWeb Servicesæ¥æ¯æä¸äºè¿ç¨ä¿¡æ¯çè·åï¼ä½¿ç¨ Apahce
Luceneå®ç°å
¨ææ£ç´¢åè½ã
主è¦ç¹ç¹ï¼
æä¾åä¸ç»éæ¥å£ï¼å¤è®¤è¯æ¨¡å¼(LDAPæ SQL);
管çåè½éè¿ç¨æ·çé¢è½»æ¾ç®¡çç¨æ·ï¼ç»ï¼è§è²;
ç¨æ·è½å¯ä»¥æ ¹æ®éè¦å®å¶ä¸ªæ§åçportal layout;
è½å¤å¨ä¸»æµçJ2EEåºç¨æå¡å¨ä¸è¿è¡ï¼å¦JBoss+Jetty/Tomcat,JOnAS;
æ¯ æ主æµçæ°æ®åºï¼å¦PostgreSQL,MySQL;
使ç¨äºç¬¬ä¸æ¾çå¼æºé¡¹ç®ï¼å¦Hibernate, Lucene, Struts;
æ¯æå
æ¬ä¸æå¨å
çå¤ç§è¯è¨;
éç¨æå
è¿çææ¯ Java, EJB, JMS, SOAP, XML;
JetSpeed
Jetspeedæ¯ä¸ä¸ªå¼æ¾æºä»£ç çä¼ä¸ä¿¡æ¯é¨æ·(EIP)çå®ç°, 使ç¨çææ¯æ¯JavaåXML. ç¨æ·å¯ä»¥ä½¿ç¨æµè§å¨,
æ¯æWAPåè®®çææºæè
å
¶å®ç设å¤è®¿é®Jetspeedæ¶è®¾çä¿¡æ¯é¨æ·è·åä¿¡æ¯. Jetspeedæ®æ¼çä¿¡æ¯éä¸å¨çè§è²,
å®è½å¤æä¿¡æ¯éä¸èµ·æ¥å¹¶ä¸å¾å®¹æå°æä¾ç»ç¨æ·.
Jetspeedå
·æå¦ä¸çç¹å¾:
å³å°æ为æ ååçJava Portlet API
åºäºæ¨¡æ¿çå¸å±, å
æ¬JSPåVelocity
éè¿å¼æ¾çå
容åæ¥ææ¯æ¯æè¿ç¨XML å
容交æ¢
å®å¶é»è®¤ç主页
使ç¨æ°æ®åºè¿è¡ç¨æ·è®¤è¯
å
åç¼åææ¯, å 快页é¢çååº
é è¿Rich Site Summaryææ¯, æ¯æåæ¥å
容
åCocoon, WebMacro, Velocityéæ.
Wireless Markup Language (WML) æ¯æ
使ç¨XMLæ ¼å¼çé
ç½®æ件注åportlet.
å®æ´ç Web Application Archive (WAR) æ¯æ
Webåºç¨ç¨åºå¼åçåºç¡è®¾æ½
å¯ä»¥å¨æ¬å°ç¼ åè¿ç¨å
容
ä¸Avantgoåæ¥
å¯ç§»æ¤å°æææ¯æJDK1.2åServlet 2.2çå¹³å°
ä¸ Turbine模ååæå¡éæ
å¯ä»¥æ ¹æ®ç¨æ·, å®è£
åªä½ç±»ååè¯è¨çä¸å设å®, 产çä¸åç个æ§åæå¡
æç»åæ å¡ä½¿å¾æç±çportletè½å¤å®¹æçåå¨æ¯ä¸ªç¨æ·çç¶æ, 页é¢åportlet
使ç¨ç®è¤ææ¯ä½¿å¾ç¨æ·å¯ä»¥éæ©portletçé¢ è²åæ¾ç¤ºå±æ§
èªå®ä¹åè½æ¯ç管çåå¯ä»¥éæ©portlet以åå®ä¹ä¸ªäººé¡µé¢çå¸å±
å¨æ°æ®åºä¸åå¨PSML
é è¿Jetspeedçå®å
¨portlets管çç¨æ·, ç»,è§è²åæé
åºäºè§è²å¯¹è®¿é®portletè¿è¡æ§å¶
JOnAS
JOnASæ¯ä¸ä¸ªå¼æ¾æºä»£ç çJ2EEå®ç°ï¼å¨ObjectWebåä¼ä¸å¼åãæ´åäºTomcatæJettyæ为å®çWeb容å¨ï¼ä»¥ç¡®ä¿ç¬¦åServlet
2.3åJSP 1.2è§èãJOnASæå¡å¨ä¾èµæå®ç°ä»¥ä¸çJava APIï¼JCAãJDBCãJTA
ãJMSãJMXãJNDIãJAASãJavaMail ã
JFox3.0
JFox æ¯ Open Source Java EE Application Serverï¼è´åäºæä¾è½»é级çJava
EEåºç¨æå¡å¨ï¼ä»3.0å¼å§ï¼JFoxæä¾äºä¸ä¸ªæ¯æ模ååçMVCæ¡æ¶ï¼ä»¥ç®åEJB以åWebåºç¨çå¼å!
å¦ææ¨æ£å¨å¯»æ¾ä¸ä¸ªç®åãè½»éãé«æãå®åçJava EEå¼åå¹³å°ï¼é£ä¹JFoxæ£æ¯æ¨éè¦çã
JFox 3.0 æ¥æ以ä¸ç¹æ§ï¼
é æ°è®¾è®¡ç IoC å¾®å
æ ¸ï¼èå
¥ OSGi 模ååææ³
设计æåµå
¥å¼æ¶æï¼è½å¤åä»»ä½ Java Web Serveréæé¨ç½²
æ¯ æ EJB3ï¼JPAè§èï¼æ¯æ容å¨å
å容å¨å¤ä¸¤ç§æ¹å¼è¿è¡EJBåJPAç»ä»¶
æ¯æ EJB åå¸æWeb Service
é ç¨ JOTM()æä¾äºå¡å¤çï¼æ¯æ两é¶æ®µæ交 (2PC)
éç¨ XAPool() æä¾ XA
DataSourceï¼æ¯ææºè½è¿æ¥æ± 管ç
å
ç½® MVC æ¡æ¶ï¼å®ç°èªå¨Form
Mapping,Validator,Uploadingçåè½ï¼æ¯æJSP/Velocity/Freemarker页é¢å¼æï¼å¹¶æ¯æç´æ¥å¨
Actionä¸æ³¨å
¥EJB
æ¯æå¤åºç¨æ¨¡åé¨ç½²ï¼è®©ä¸å¤§ååºç¨å
å享å模ååå¼å带æ¥çä¼å¿
æä¾ Manager 管ç模åï¼å¯ä»¥æ¥çå管çåç§è¿è¡æ¶åæ°
æä¾æ ¹æ® JFox ç¹è²éåç Petstore åºç¨æ¨¡å
EasyJWeb
EasyJWebæ¯åºäºjavaææ¯ï¼åºç¨äºWEBåºç¨ç¨åºå¿«éå¼åçMVCæ¡æ¶ï¼æ¡æ¶è®¾è®¡æææ¥æºäºå½å
ä¼å¤é¡¹ç®å®è·µï¼æ¡æ¶å
ååç¾äºå½å主è¦æµè¡çå¼æºWebæ¡æ¶(StrutsãJSFãTapestry
ãWebwork)ï¼å¸åäºå
¶ä¼ç¹åç²¾åï¼å©ç¨Velocityä½ä¸ºæ¨¡æ¿é¡µé¢å¼æï¼æ¯ä¸ä¸ªå®ç°äºé¡µé¢å代ç å®å
¨å离çMVCå¼åæ¡æ¶ãæ¯ä¸ä¸ªè½å®ç°ä¸å°å
Webåºç¨ç³»ç»å¿«éå¼åçç®æWebæ¡æ¶ã
éè¿EasyJWeb
Toolsæä¾çé
å¥å¼åå·¥å
·ï¼å¯ä»¥å®ç°åºäºEasyJWebæ¡æ¶çWebåºç¨å¿«éå¼åï¼å
æ¬å¸¸ç¨åºç¨è½¯ä»¶ç代ç èªçæãæ°æ®åºæ·»å æ¹æ¥(CRUD)代ç çæãèªå¨é¡µé¢æ¨¡ççæãé
ç½®æ件管ççã
æ¡æ¶ç¹ç¹ï¼
é¶é
æ件置æ¯æã以åæ们æ¯æ¥è§¦ä¸ä¸ªæ¡æ¶ï¼å¼å§æ»é½è¦è¢«
ä»çé
ç½®æ件æè
¾ä¸çªãEasyJWebå®ç°é¶é
ç½®æ¯æï¼å¯ä»¥ä¸åä¸å¥é
ç½®æ件就å¨æ¡æ¶åºç¡ä¸æå»ºä½ çè¿ç¨ã(éåå°åç½ç«ç³»ç»)ã
ç® æç模æ¿é¡µé¢è®¾è®¡æ¯æï¼æ¾å¼ä½¿ç¨jspï¼ä½¿ç¨ç®åVelocityèæ¬è¯è¨ä½ä¸ºé¡µé¢æ¨¡æ¿ã
页é¢ç¨åºå®å
¨å离ï¼å®ç°æ¾ç¤ºé¡µé¢ä¸ç¨åºé»è¾ çå®å
¨å离ï¼å
æäºä¼ ç»jsp页é¢é¾äºç»´æ¤çé®é¢ã
åºäºé¡µé¢ç»ä»¶çæ¡æ¶ãçµæ´»ç页é¢ç»ä»¶é
ç½®ï¼å¯ä»¥ç´æ¥éè¿é
ç½®æ件设置å段级çäºä»¶ ç»ä»¶ã
å¿«éå¼åæ¯æï¼éè¿EasyJWeb
Toolsï¼å¯ä»¥èªå¨çæåºç¨è½¯ä»¶æ¨¡æ¿ä»£ç ï¼å®å¶å¹¶ç®¡çèªå·±çJ2EE代ç 模æ¿ï¼ä»£ç çæ模æ¿æ¯æææµè¡çå®ç¨Javaå¼åæ¡æ¶(å¦hibernateã
Springç)å®ç°å¿«éå¼åã
Tapestry
Tapestryæ¯ä¸ä¸ªå¼æºçåºäºservletçåºç¨ç¨åºæ¡æ¶ï¼å®ä½¿ç¨ç»ä»¶å¯¹è±¡æ¨¡åæ¥å建å¨æçï¼äº¤äºçwebåºç¨ãä¸ä¸ªç»ä»¶å°±æ¯ä»»æä¸ä¸ªå¸¦æ
jwcidå±æ§çhtmlæ è®°ãå
¶ä¸jwcçæææ¯Java Web
ComponentãTapestry使å¾java代ç ä¸htmlå®å
¨å离ï¼å©ç¨è¿ä¸ªæ¡æ¶å¼å大ååºç¨åå¾è½»èæ举ã并ä¸å¼åçåºç¨å¾å®¹æç»´æ¤åå级ã
Tapestryæ¯ææ¬å°åï¼å
¶é误æ¥åä¹å¾è¯¦ç»ãTapestry主è¦å©ç¨javabeanåxmlææ¯è¿è¡å¼åããSpindle:Tapestry
è¾
å©å¼åEclipseæ件ã.
FreeMarker
FreeMarkerå
许Java
servletä¿æå¾å½¢è®¾è®¡ååºç¨ç¨åºé»è¾çå离ï¼è¿æ¯éè¿å¨æ¨¡æ¿ä¸å¯å°HTMLå®æçã模æ¿ç¨servletæä¾çæ°æ®å¨æå°çæ
HTMLã模æ¿è¯è¨æ¯å¼ºå¤§çç´è§çï¼ç¼è¯å¨é度快ï¼è¾åºæ¥è¿éæHTML页é¢çé度ã
Lucene
Apache
Luceneæ¯ä¸ä¸ªåºäºJavaå
¨ææç´¢å¼æï¼å©ç¨å®å¯ä»¥è½»æå°ä¸ºJava软件å å
¥å
¨ææ寻åè½ãLuceneçæ主è¦å·¥ä½æ¯æ¿æ件çæ¯ä¸ä¸ªåä½ç´¢å¼ï¼ç´¢å¼è®©æ寻çæçæ¯ä¼ ç»çéåæ¯è¾å¤§å¤§æé«ï¼Lucenæä¾ä¸ç»è§£è¯»ï¼è¿æ»¤ï¼åææ件ï¼ç¼æå使ç¨ç´¢å¼çAPIï¼å®ç强大ä¹å¤é¤äºé«æåç®åå¤ï¼æ¯æéè¦çæ¯ä½¿ä½¿ç¨è
å¯ä»¥éæ¶åºèªå·²éè¦èªè®¢å
¶åè½ã
iText
iTextæ¯ä¸ä¸ªè½å¤å¿«é产çPDFæ件çjavaç±»åºãiTextçjava类对äºé£äºè¦äº§çå
å«ææ¬ï¼è¡¨æ ¼ï¼å¾å½¢çåªè¯»ææ¡£æ¯å¾æç¨çãå®çç±»åºå°¤å
¶ä¸java
Servletæå¾å¥½çç»åã使ç¨iTextä¸PDFè½å¤ä½¿ä½ æ£ç¡®çæ§å¶Servletçè¾åºã
Groovy
Groovyæ¯ä¸ç§åºäºJVMçææ·å¼åè¯è¨ï¼å®ç»åäºPythonãRubyå Smalltalkç许å¤å¼ºå¤§çç¹æ§ã
Groovyå·²å¨WebWork2ä¸çåºç¨ãå®å¯ä»¥è¢«ç¼è¯ä¸ºæ åçJava Bytecodeã
OpenCms
OpenCmsæ¯ä¸ä¸ªJ2EEç产åï¼å®æ¯ç¨ Javaåæçãå®åTomcatæç»å¨ä¸èµ·ãä½æ¯ä¹è½å¤ä½¿ç¨ATG
DynamoãWebLogicåWebSphereãOpenCmsæ¯æå¤ç§RDBMSæ¥ä¿åå
容ï¼å
æ¬OracleãSQL
ServerãSybaseåmySQLãæ°çæ¬æä¾äºä¸ä¸ªæ°ç模æ¿å¼æï¼JSPæ¯æï¼ä¸ç§æ°çè¿æ¥ç®¡çç³»ç»ï¼æé«äºç¨³å®æ§ã
JUnit
JUnitæ¯ç± Erich Gamma å Kent Beck ç¼åçä¸ä¸ªåå½æµè¯æ¡æ¶(regression testing
framework)ãJunitæµè¯æ¯ç¨åºåæµè¯ï¼å³æè°ç½çæµè¯ï¼å 为ç¨åºåç¥é被æµè¯ç软件å¦ä½(How)å®æåè½åå®æä»ä¹æ ·(What)çåè½ãJunitæ¯ä¸å¥æ¡æ¶ï¼ç»§æ¿TestCaseç±»ï¼å°±å¯ä»¥ç¨Junitè¿è¡èªå¨æµè¯äºã
BlueJ
BlueJæ¯ä¸ä¸ªä¸é¨ä¸ºå
¥é¨çº§æå¦è®¾è®¡çJavaTM å¼åç¯å¢ãå®æ¯ç±æ¾³å¤§å©äºå¢¨å°æ¬Monash大å¦BlueJå°ç»è®¾è®¡å¹¶å¼åçã
XWiki
XWikiæ¯ä¸ä¸ªå¼ºå¤§çJavaå¼æºçWikiå¼æãå®æ¯æä¸äºå欢è¿çç¹æ§å¦ï¼
å
容管ç(æµè§/ç¼è¾/é¢è§/ä¿å)ï¼
æ¯æé件ï¼
çæ¬æ§å¶ï¼
å
¨ææ¬æç´¢ï¼
æ é管ç
使ç¨Hibernateè¿è¡æ°æ®åå¨ï¼
RSSè¾åºä¸æ¾ç¤ºå¤é¨çRSS feedsï¼
å¤ è¯è¨æ¯æï¼
æä¾XML/RPCçAPI,
WYSIWYG HTMLç¼è¾å¨,
导åºä¸ºPDF
Groovy èæ¬æ¯æçç....ã
EJBCA
EJBCAæ¯ä¸ä¸ªå
¨åè½çCAç³»ç»è½¯ä»¶ï¼å®åºäºJ2EEææ¯ï¼å¹¶æä¾äºä¸ä¸ªå¼ºå¤§çãé«æ§è½å¹¶åºäºç»ä»¶çCAãEJBCAå
¼å
·çµæ´»æ§åå¹³å°ç¬ç«æ§ï¼è½å¤ç¬ç«ä½¿ç¨ï¼ä¹è½åä»»ä½J2EEåºç¨ç¨åºéæã
JXTA
Sun微系ç»å
¬å¸å
¬å¼äºæ¨å¨å»ºç«P2P(Peer to
Peer)éç¨ææ¯åºç¡çJXTA计åãJXTAææ¯æ¯ç½ç»ç¼ç¨å计ç®çå¹³å°ï¼ç¨ä»¥è§£å³ç°ä»£åå¸è®¡ç®å°¤å
¶æ¯ç¹å¯¹ç¹(P2P)计ç®ä¸åºç°çé®é¢ã
JXTAå°å»ºç«æ ¸å¿çç½ç»è®¡ç®ææ¯ï¼æä¾æ¯æå¨ä»»ä½å¹³å°ãä»»ä½å°æ¹ä»¥åä»»ä½æ¶é´å®ç°P2P计ç®çä¸æ´å¥ç®åãå°å·§åçµæ´»çæºå¶ãJXTAé¦å
å°å½çº³ç®å
P2Pçåè½ç¹å«ï¼èå建ç«æ ¸å¿çææ¯æ¥è¡¨è¾¾ç®åçP2P计ç®çå±éæ§ãå
¶éç¹æ¯å建åºæ¬çæºå¶ï¼èå
·ä½ççç¥éæ©æå交ç»åºç¨çå¼åè
ãJXTAå°å
åå©ç¨XMLãJavaçå¼æ¾ææ¯ï¼ä½¿å¾UNIXæä½ç³»ç»æ´å¼ºå¤§åçµæ´»ï¼æ¯å¦å©ç¨ç®¡é(Pipes)ä¼ è¾Shellå½ä»¤å®ç°å¤æç计ç®ä»»å¡ãJXTAæ¯æ
P2Påºç¨çåºæ¬åè½æ¥å»ºç«ä¸ä¸ªP2Pç³»ç»ï¼è¿å°åªåè¯å®è¿äºå¯ä»¥æ为建ç«æ´é«å±åè½çåºç¡æé 模åãJXTAæ¶æå¯ä»¥å为ä¸ä¸ªå±é¢ï¼JXTAæ ¸å¿å±ã
JXTAä¸å¡å±åJXTAåºç¨å±ã
DWR
DWR(Direct Web
Remoting)æ¯ä¸ä¸ªWEBè¿ç¨è°ç¨æ¡æ¶.å©ç¨è¿ä¸ªæ¡æ¶å¯ä»¥è®©AJAXå¼ååå¾å¾ç®å.å©ç¨DWRå¯ä»¥å¨å®¢æ·ç«¯å©ç¨JavaScriptç´æ¥è°ç¨æå¡ç«¯çJavaæ¹æ³å¹¶è¿åå¼ç»JavaScript就好åç´æ¥æ¬å°å®¢æ·ç«¯è°ç¨ä¸æ ·(DWRæ ¹æ®Javaç±»æ¥å¨æçæJavaScrip代ç ).å®çææ°çæ¬
DWR0.6æ·»å 许å¤ç¹æ§å¦:æ¯æDom Treesçèªå¨é
ç½®,æ¯æSpring(JavaScriptè¿ç¨è°ç¨spring
bean),æ´å¥½æµè§å¨æ¯æ,è¿æ¯æä¸ä¸ªå¯éçcommons-loggingæ¥è®°æä½.
ZK
ZKæ¯ä¸ä¸ªAjax Java Webæ¡æ¶ï¼å©ç¨å°é代ç å°±è½å¤å¼ååºæ¥æRich
UIçWebåºç¨ãZKæä¾åºäºXULçæ è®°è¯è¨åäºä»¶é©±å¨çç»ä»¶ï¼å¯ä»¥è®©ä½ åå¼åæ¡é¢åºç¨ç¨åºä¸æ ·ç®åãæ¯æEL表达å¼åèæ¬è¯è¨å
æ¬ï¼JavaScriptãRubyåGroovyçãæ¯æAnnotationåæ°æ®ç»å®ãéæGoogle
MapsãFCKeditorãDOJO以åTimelineã
温馨提示:答案为网友推荐,仅供参考