使用spring在app服务器中实现业务逻辑

时间:2010-05-24 14:01:48

标签: java spring remoting business-logic

是否可以使用pojos而不是EJB或Servlets来实现App Server远程中的业务逻辑。主要思想是应用3层模型,其中客户端可以是Web浏览器和桌面应用程序,并且它们在App Server中共享业务逻辑。

这将是架构

浏览器-----> Web服务器--------> | App Server(业务逻辑通用)| -------> | RDBMS通用|
桌面应用程序(例如Swing) - > | App Server(业务逻辑通用)| -------> | RDBMS通用|

1 个答案:

答案 0 :(得分:5)

您可以使用Spring而不是EJB。我推荐它!

但两种替代方案都能以出色的方式为您处理事务处理和安全等企业功能。

使用Spring与否,您仍然需要一个用于网页的Servlet容器。如果将Servlet容器的web.xml文件配置正确,Servlet容器可以启动Spring容器。

使用Spring的事务处理示例:

@Transactional
public void execute(..) {..}

使用EJB 3.x:

@TransactionAttribute
public void execute(..) {..}

如您所见,这两种选择都可以让您以声明方式添加企业功能。

阅读HenryOS的评论后更新:

可以在一台服务器上拥有所有业务逻辑。

一种解决方案是在客户端(WEB服务器和胖Swing客户端)之间使用Web服务。这是一个相当不错且松散耦合的解决方案。

如果您需要更快的速度,可以考虑使用Google的Protocol Buffer或类似技术。

有趣的是,使用Web服务或协议缓冲区,您仍然需要具有业务逻辑的服务器上的Tomcat或Jetty等Web容器,因为它必须为客户端提供Web服务。所有Web服务框架(如Spring WS,CXF和Apache Axis 2)都使用Servlet。

说到图层,我会在WEB服务器上推荐两个图层,因为您只在将数据发送到业务服务器之前呈现和检索数据。在业务服务器上,我将推荐三层。顶层处理Web服务,中间是业务层,底层是数据库和其他企业系统的集成层。

最后,如果你将CXF或Spring WS与JAXB一起使用,那么业务服务器上的所有类都可以写成POJO!它也适用于其他几个编写良好的Web服务框架。

我希望这能回答你的问题!