分离Spring和Dojo单页应用程序代码库

时间:2012-09-22 15:35:44

标签: javascript spring dojo directory-structure

我正在开发一个带有Spring Roo REST API后端和Dojo单页客户端应用程序的Web应用程序。 Spring Roo开箱即用,提供了一个方便的管理界面(使用Web MVC),因此我希望将其保留为管理职责。

但是我希望尽可能将Dojo应用程序与服务器应用程序分离。服务器是我们期望开发新客户端应用程序的平台,因此我希望单独开发“官方”客户端Web应用程序。

构建应用程序代码的最佳方法(甚至只是一种方法)是什么?将服务器单独作为API和管理界面很容易,但所有Dojo JS都存在于哪里?它在Spring webapp目录中运行正常,但是一旦结构变得更复杂或者移动到其他地方就会很快变得复杂(Spring URL映射对我来说仍然非常不透明)。理想情况下,它可以在开发机器上本地托管,这也引入了所有跨域JS问题。

1 个答案:

答案 0 :(得分:1)

由于dojo工具包的后一版本问世,我们真的不必区分相同和跨域的javascript模块。使用dojo加载器,您可以从任何地方提取模块。

我建议您创建自己的命名空间,例如: com.yourmodule然后在配置中引用其位置。例如;您可以为js-application创建一个主机'arbitrary.domain',并将其放在'/ com / yourmodule /'文件夹中。 com.yourmodule.application包含应用程序的引导程序和初始化。这个ofc将在'/com/yourmodule/application.js'文件中。

第一个要求(或通过dojoConfig)指定包声明,指向命名空间位置,有点像这样 - 遵循上面的示例命名约定。

require({ packages : [
    { 
       name: 'com.yourmodule', 
       location: 'http://arbitrary.domain/com/yourmodule'
    }
]}, [ "com/yourmodule/application" ], function(Application) {

    window.application = new Application();

});