Java 应用架构设计问题
在设计基于Java/J2EE的web应用程序时,我需要您的建议。其特点如下:Java 应用架构设计问题,java,architecture,jakarta-ee,Java,Architecture,Jakarta Ee,在设计基于Java/J2EE的web应用程序时,我需要您的建议。其特点如下: 纯粹面向数据库的应用程序(有10个表)。数据库是Oracle 三种不同类型的界面/屏幕: 2.1 WebSphere Portlet(6个接口/屏幕) 2.2手持设备(5个接口/屏幕) 2.3 Web应用程序(17个界面/屏幕) 很少有屏幕只是使用Crystal Reports构建的报表 没有太多的业务逻辑涉及 我现在关注的是: 我应该选择哪种体系结构作为2层还是3层 我应该使用struts/jsf(MVC)哪些框架?
十张桌子?这个模式足够小,在我看来JPA和Hibernate似乎有些过分了。为持久化层创建一个POJO接口,您可以将实现与客户端隔离。从简单开始,如果您决定需要或想要,请切换它。我认为第一个答案有很好的基线。我会附和大多数观点,但会另外推荐数据库访问(见下图);与“原始”JDBC相比,它很好地简化了处理,但不需要任何映射。您是否计划为手持设备开发应用程序?或者您可以在它们中使用web应用程序?我想在它们中使用相同的web应用程序,但问题是表示层如何能够足够动态,以根据设备类型呈现界面?是否有任何框架提供此功能?如果您使用Spring,您的web控制器将使用相同的后端,而不考虑UI技术。让控制员确定他们正在处理的是哪种客户,并确定什么是适合发送的。我需要一些澄清。让我们用“层”来代替“层”。因为这只是逻辑上的分离。好吧,假设我选择春天。但是我很困惑,我怎么才能得到三层的分离呢?弹簧将属于哪一层?如果我有三个独立的包,比如说每层一个,那么Spring会给我什么好处呢?感谢您,portlet应用程序将在单独的服务器中运行。那么,您认为我应该将服务和数据库层公开为一个Web服务,以避免代码重复吗?如何实现分离?用于服务和持久性的Easy-POJO接口。Spring是一个依赖注入引擎(对象工厂),它使用面向方面编程。它有一些模块来帮助实现,包括JDBC和Hibernate,并将整个过程粘在一起。Spring将给您带来很大的提升。不,数据库不会作为服务公开。客户端将通过服务访问数据库。这使您可以更改身份验证和授权用户以及绑定和验证数据。没有那种SQL注入攻击。可以使用您选择的任何技术远程公开服务:SOAP、REST、EJB、RPC、HTTP、Hessian、Burlap—所有这些都受Spring支持。如果从POJO接口开始,可以推迟到以后再选择远程处理技术。这将使您的服务更易于测试。看来Spring是一个不错的选择。但我现在的团队对Struts很有经验,不幸的是,我没有太多时间在Spring上训练他们。我正在考虑使用Struts,但我仍然不知道如何将我的应用程序打包以部署在websphere application server(web用户)和websphere portal server(门户用户)上?谢谢您的回复。学习曲线有多快?鉴于团队是JDBC方面的专家……在我看来,它是一个非常简单且易于使用的库——有点像是团队经常为之编写自己的helpers方法(关闭连接、参数绑定)的自动化。主要的挑战在于lib没有被广泛地记录。因此,使用一些JDBC知识应该是轻而易举的事。