Skip to content
springside edited this page Feb 25, 2012 · 34 revisions

Web

MVC Framwork: SpringMVC3.0 Restful的风格终于回归了MVC框架的简单本质,对比之下Struts2概念太复杂更新又太懒了。

Template:JSP2.0且尽量使用JSP EL而不是taglib,一向是SpringSide的推荐,Freemarker们始终有点小众。

Layout Decoration: 一直想要这种框架,但如Tiles们的配置都太复杂了,直到SiteMesh的3.0版出现。

Javascript Library: 随大流用了JQuery。其实Dojo的面向对象语法更优美,但用户数和插件社区差了点。

CSS Framework: 随便挑的Blueprint CSS,提供了简便的布局能力和基本的页面美化。

Database

ORM Framework 快速开发的应用里,领域对象肯定是用JPA标注的。至于API用Hibernate还是JPA,因为那个极简便的,DAO只要写接口就好了的Spring-Data-JPA,所以选了JPA。 当然,JPA的实现还是用Hibernate

追求高性能的应用,如mini-service这种Web服务,当然就是MyBatis了。如果项目再简单点,Spring JDBC其实也不错。

Cache: 在JVM里的缓存,最老牌最多人用的依然是Ehcache,JBoss的infinispan喊得再大声也没多少人用。有时间要看看它被Teracotta收购后有什么新功能。

而中央式的缓存,Memcache已经成为了事实标准。而且当主创撒手不管后,社区现在反而有着稳定的更新。 Client方面,比较稳健选择的还是Spymemcached

Services

SOAP WebService: JAX-WS2.0的注解 + Apache CXF 无疑是最成熟的,一说起Axis1/2我都要打冷颤。

Restful Service: JAX-RS1.0的注解 + Jersey。CXF也提供Restful的能力,但总有些小问题。Spring MVC也可以的。 但最后还是用Jersey,因为是标准,而且比较单纯。当然,如果性能是目标,直接写Servlet也没啥。 在Restful Client方面,暂时还没有JAX-RS标准,Jersey的Client是最好用的,比Apache HttpClient和Spring的RestTemplate好用。

Security Framework: 选择Apache Shiro是因为SpringSecurity的代码复杂度已经超过了它的实际需要,扩展困难痛苦。另一个原因是SpringSecurity的基本API居然只支持基于角色的判断hasRole("Administrator"),而Shiro同时还支持我们其实更常用的基于Permission的判断(hasPermission("User:Edit"))。

JMS: ActiveMQ是最成熟JMS实现,JBoss的HornetQ同样只是喊得大声。但还有更复杂的AMQP协议的RabbmitMQ,或者ActiveMQ自己新出的Applo可以选择。

Schedule: 对于固定时间间隔的任务,JDK自带的Executor已足够好,简单的Cron式定时执行,Spring自带的Executor也能满足。Quartz更大的优势体现在保证集群中有且仅有一台服务器执行了任务,有空同样看看它被Teracotta收购后有什么新功能。

##Utilizes General Apache Commons Lang说是伴着我们长大的也不为过,连package名也改了的3.0版,全面支持泛型。

Guava 最近是Google新鲜推出的优雅产品。但说它会完全替代其他的类库又不一定,因为它有时候太新潮了,反而用不惯。比如StringUtils我还是喜欢用Apache的,IO也同样是Apache的好使。 JodaTime2, Jackson, Dozer, POI,HttpClient, Hibernate Validator

##Test Junit, Selenium2, Mockito + PowerMock

##Infrasture JDK6, Jetty7, DBUnit, Jenkins, Sonar