我想在我的基于 Spring 的多模块项目中使用 Spring Rest 开发一个 RESTful API。为此,我有一个 webapp 模块和一些其他业务/数据层模块。例如,这将是我简化的项目结构:
myProject
-- webapp (war-packaged)
-- business (jar-packaged)
-- data (jar-packaged)
业务模块依赖于数据模块,webapp 依赖于业务模块。Webapp 成功导入每个模块的应用程序上下文。现在我希望能够使用一些业务模块类,根据从数据库中检索到的一些数据进行某种计算,以提供某种资源。我看过的所有示例都非常简单,并且根本没有涵盖这种多模块方法。
问题是什么?就我而言,Tomcat 按一定顺序加载类。具体来说,它首先加载 WEB-INF/classes,然后才加载 WEB-INF/lib(放置所有 webapp 依赖项,在这种情况下为业务模块)。所以,我的问题来了。我应该把控制器类放在哪里?如果我将它们放在 webapp 模块中,我将无法自动装配任何业务模块 bean,因为当我部署 webapp 战争时 Tomcat 会抛出ClassNotFoundException(至少这是我经历过的行为)。
答案可能很简单,但我对 Spring 及其世界还很陌生!
谢谢大家。