专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Java软件开发技术架构总结

Java软件开发技术架构总结

更新时间:2021-12-03 09:56:05 来源:动力节点 浏览807次

在具体的实现中,表现层可为Struts/JSF等,业务层、访问层可为JavaBean或EJB等,资源层一般为数据库。

宏观上的层次就是这样,在具体现实中,有如下几种实现形式:

1.轻量级实现

表现层使用基于MVC的框架,比如Struts或JSF

业务层使用JavaBean(就是常说的Service)

访问层使用JavaBean(就是常说的DAO)

优点:

轻量级实现,简单明了ü

缺点:

难以无法实现分布式应用ü

以下功能必须通过编程实现ü

事务控制²

资源管理(包括组件的创建)²

线程安全问题²

安全性²

2. 重量级J2EE实现

现层依然是基于MVC的框架

访问层采用实体Bean实现,如果可能最好采用CMP,实现起来更简洁。此处的实体Bean可以考虑采用本地接口

业务层一分为二,服务控制器可以由会话Bean充当,用来封装业务流程(相当于轻量级实现中的Service),也可以考虑采用本地接口;门面也可以由会话Bean充当(一般来说无状态会话Bean足矣),作为业务层的入口,应该采用远程接口。

优点:

以下功能可由EJB容器自动实现,或通过配置实现

事务控制

远程访问

线程安全

资源管理

安全性

可以进行分布式应用

因为采用了EJB,故部分特征可以由装配人员来配置(比如事务,安全性等),不需要在软件中硬编码

EJB组件有更好的重用性

可利用容器提供的其他企业级的功能(比如集群,容错,灾难恢复等)

可以加入MDB(实现异步通讯)等技术

缺点:

开发难度较高

如果不恰当的使用实体Bean,会造成效率低下。如果采用CMP,则很多数据访问的操作不能直接实现。

缺少良好的开发环境

软件可能依赖于具体的EJB容器

EJB容器可能很贵,开发软件也可能很贵

3.轻量级和重量级J2EE的切换

如果项目有需求,并有充分的时间,还可以通过在表现层和业务层的交界处加入“业务代表”(JavaBean + 服务定位器实现)来对表现层隐藏对业务层访问的细节(JavaBean和EJB的访问方式显然不同),只需替换“业务代表”就可以切换轻量级和重量级两种实现。举例说明,一般电话上都有一个P/T开关(脉冲/音频开关),随着开关状态的不同,拨号时电话机会判断是使用脉冲拨号还是音频拨号。

这种架构唯一的缺点就是必须写两套实现代码……

4.轻量级J2EE实现

访问层通过JavaBean调用ORM框架实现(Hibernate,iBatis等),代码简洁,功能完备(相对于EJB 2.x而言),如果用的是Hibernate,可以忽略底层数据库的差异,如果用的是iBatis,则方便对SQL进行优化。

业务层和访问层依靠AOP框架(如Spring)可以在切面中实现事务,安全性等功能,同时不影响业务代码。如果采用Spring,其中已经内置了事物切面,并可以轻易的与主流ORM框架进行整合,实现声明式的事物管理。当然,更可以使用IoC模式降低组件间的耦合性。

优点:

可以通过AOP框架实现事物、安全性等功能,同时不影响业务代码

ORM框架比CMP更灵活,比BMP更简洁(相对于EJB² 2.x而言),运行效率也比较高

如果使用Spring,可以用更简单的方式实现J2EE中比较复杂的功能

无需额外的容器

ORM和AOP框架可以找到免费的开源实现,降低项目成本(不过也有人认为采用开源项目可能综合成本更高)

缺点:

非官方框架,缺少文档、技术支持和业界经验

采用技术太多,学习曲线较高,难以招到合适的程序员

某些企业级的功能轻量级框架还不能实现(或独立实现)

测试、调试均比较复杂

以上就是关于“Java软件开发技术架构总结”的介绍,如果大家想了解更多相关知识,不妨来关注一下动力节点的Java开发工具,里面有更多更详细的介绍在等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>