写了几个月的通讯中间件,再次带领一个J2EE项目,使用WebWork、Spring、Hibernate,感觉写J2EE项目就像在休假,要考虑的事情少之又少,无论是效率、异常处理、线程调度、架构模式,一切都不再那么重要,无需考虑那么多,只要语义清晰,沟通流畅就好了。
想起一周前跟Jerry聊天,说起因为Unixware下JDK1.3的notify语义的不稳定问题而一天内重新编写了三次通讯框架,最后采用了完全非框架的过程化写法,Jerry说应该先写出一个实现,然后在之上重构,就像爬山一样,不可能一下子攀登到顶峰,当时虽然心里感觉不是这样,但竟一时语塞,不知从何说起,再次回到J2EE开发,才恍然明白那天的感觉,框架开发和业务开发的不同就在于,很难重构,尤其是通讯框架,架构通常决定了它的几个重要指标。
架构模式不同于设计模式,设计模式的问题可以通过重构解决,而架构模式几乎只能重新做(当然也有例外),架构一旦确定,很多东西就无法再加入,所以为什么很多开源的J2EE框架在大版本升级后不得不抛弃向后兼容。这也是为什么国产通讯框架Cindy的作者想在其中加入FilterChain,而最终放弃的原因,因为这对基础库的改动实在太大。
而MINA的架构就足够灵活,它屏蔽了不同通讯方式和通讯底层事件机制的差异,就像在如同Cindy和Netty2这种基于NIO的reactor模式之上的框架,要想重构到BIO,就几乎要全部重写,不过Netty2要好一些,毕竟有Netty1作为铺垫,所以在NIO的reactor的路上走的不是很远(NIO的reactor实现真是的不咋个),而MINA则只需要在SocketIoProcessor中使用Helf Sync/Helf Async模式替换掉reactor之上的事件处理即可,当然,最好还要提供线程池以便进行overload shield,在向Apache LDAP团队提交了MINA的JDK1.3核心库时也曾想提起该问题,可惜后太忙,忘记了。不过我想以Trustin的聪明,一定会想到这个问题。
分享到:
相关推荐
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...
赠送jar包:geronimo-j2ee-management_1.1_spec-1.0.1.jar; 赠送原API文档:geronimo-j2ee-management_1.1_spec-1.0.1-javadoc.jar; 赠送源代码:geronimo-j2ee-management_1.1_spec-1.0.1-sources.jar; 包含...
<精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例>源码和数据库。这是第5卷,请下载完7卷后解压。
《J2EE项目-在线求助系统》是一个基于J2EE架构设计的课程大作业,旨在为学生提供一个学习和实践的平台。这个项目利用了MyEclipse作为开发环境,SpringMVC作为主要的控制层框架,展示了J2EE在实际应用中的强大功能。...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是针对Java企业级开发的一个深度学习资源,涵盖了四个核心的技术领域:Eclipse集成开发环境、Struts MVC框架、Hibernate对象关系映射(ORM)框架以及...
《J2EE-Spring-Stucts-Hibernate架构-经典》是一门深度剖析J2EE平台技术的课程,总共435页,旨在为学习者提供一个清晰、全面的J2EE技术框架理解,并通过实际操作训练提升其在J2EE Web应用开发中的编程能力。...
### J2EE全面简介 #### 一、J2EE概念 Java 2 Platform, Enterprise Edition (J2EE) 是一种企业级应用开发平台标准,它基于 Java 语言,并且为开发分布式多层 Web 应用提供了强大的支持。J2EE 的主要目标是使企业级...
接下来,Struts是Apache软件基金会的一个开源项目,它是基于MVC(模型-视图-控制器)设计模式的Web应用程序框架。Struts通过定义Action和ActionForm来处理用户请求,控制流程并更新模型。在ch06_2目录下,我们可以...
《都市供求信息网》是一个基于J2EE技术的典型应用项目,主要目的是构建一个在线的信息发布和查询平台,用户可以在该平台上发布和查找各种供求信息。这个项目涵盖了J2EE的核心技术,包括Servlet、JSP、JavaBean、EJB...
J2EE--tutorial.chm java jsp js python sql/plsql/oracle/mssql/mysql c# software
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是一本深入探讨J2EE企业级开发的权威书籍。它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate...
中文版EXPERT-ONE-ON-ONE-J2EE-DEVELOPMENT-WITHOUT-EJB.part2.rar
我们可以深入理解J2EE中的Servlet、JSP、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)以及Spring框架等核心组件的使用方法,同时也能了解到如何实现MVC(Model-View-Controller)架构模式,以达到业务...
j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar j2ee-1.4.jar
赠送jar包:geronimo-j2ee-management_1.1_spec-1.0.1.jar; 赠送原API文档:geronimo-j2ee-management_1.1_spec-1.0.1-javadoc.jar; 赠送源代码:geronimo-j2ee-management_1.1_spec-1.0.1-sources.jar; 包含...
精通J2EE--Eclipse.Struts.Hibernat
通过这份资料,我们可以深入探讨J2EE的关键概念、架构以及开发实践。 1. **J2EE核心组件** - **Servlet**: 是J2EE中处理HTTP请求的核心组件,用于扩展服务器的功能,提供动态内容。 - **JSP (JavaServer Pages)**...
- J2EE 架构的分层模型,包括客户端、Web 层、业务逻辑层和数据访问层。 - EJB(Enterprise JavaBeans)和 Servlets 的角色和交互。 - JSP(JavaServer Pages)在展现层的应用。 2. **Web 组件** - Servlet:...
J2EE Overview - Biz-Chinese.Com
**J2EE完全参考手册-J2EE概述** Java 企业版(Java 2 Platform, Enterprise Edition,简称 J2EE)是 Oracle 公司推出的一种用于构建企业级分布式应用的平台。它提供了一套全面的框架和服务,使得开发人员能够创建、...