模块化Web应用程序

时间:2011-06-28 06:14:36

标签: java hibernate spring maven

我正在开发一个带有更多接口(HTML,移动HTML,XML,REST)的Web应用程序(Spring,Hibernate,Apache Tomcat)。所以我决定将应用程序拆分为更多的Web应用程序,以避免混合来自接口的文件。我已经将应用程序的核心类(业务逻辑,Hibernate DAO)提取到外部jar并将其包含到Web应用程序中。一切似乎都很完美。

但是现在我已经意识到服务器上有更多核心实例,更多EntityManagerFactories,Spring上下文......)。当我尝试通过Spring bean进行通信时(例如,在一个接口中添加调度程序任务,在另一个接口中删除它)或使用Hibernate二级缓存,它应该分解。

什么是最佳解决方案?

2 个答案:

答案 0 :(得分:1)

如果你有更多的webapps,你也会有更多的Spring appcontexts。这是splix建议的一种可能的解决方法,但也许对于你的场景来说太多了(我只会在应用程序真的很大的情况下这样做)

我真的不知道XML接口是什么意思。 XML-RPC?网络服务? 对于

在服务层中拥有所有逻辑,如果你将来不再重复使用它,它是否在外部jar中并不重要,并且有一个具有许多视图的Spring appcontext。 / p>

答案 1 :(得分:0)

我知道很少有相同要求的项目。我们使用了2台独立服务器: API服务器 Web服务器。 API服务器可以访问所有数据,并可以针对它执行一些查询。结果对象被序列化为XML,JSON或Protobuf。使用Spring +自定义View Resolver或Jersey非常容易(我有两个项目 - 一个基于spring,第二个是Jersey,我建议你使用spring)

Web服务器调用此API(例如,使用protobuf),并根据结果为用户浏览器准备html答案(并且还可以对此API服务器进行一些ajax调用)。

移动应用也可以毫无问题地访问此API服务器。