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

Javascript 分离Spring和Dojo单页应用程序代码基,javascript,spring,dojo,directory-structure,Javascript,Spring,Dojo,Directory Structure,我正在开发一个带有SpringRooRESTAPI后端和Dojo单页客户端应用程序的web应用程序。SpringRoo提供了一个现成的管理界面(使用WebMVC),因此我希望能够在管理任务中访问该界面 但是,我希望Dojo应用程序尽可能与服务器应用程序分离。服务器是一个平台,我们希望开发新的客户端应用程序,所以我想单独开发“官方”客户端web应用程序 构造应用程序代码的最佳(甚至只是一种好的)方法是什么?很容易将服务器单独作为API和管理接口,但是所有Dojo JS都在哪里?当它位于Spring

我正在开发一个带有SpringRooRESTAPI后端和Dojo单页客户端应用程序的web应用程序。SpringRoo提供了一个现成的管理界面(使用WebMVC),因此我希望能够在管理任务中访问该界面

但是,我希望Dojo应用程序尽可能与服务器应用程序分离。服务器是一个平台,我们希望开发新的客户端应用程序,所以我想单独开发“官方”客户端web应用程序


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

由于dojo toolkit的后一个版本问世,我们不必在相同和跨域javascript模块之间进行区分。使用dojo加载程序,您可以从任何地方拉入模块

我建议您自己创建一个名称空间,例如
com.yourmodule
,然后在配置中引用它的位置。例如;您可以为js应用程序创建一个主机“arbitral.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();

});

自从DojoToolkit的后一个版本问世以来,我们实际上不必区分相同域和跨域javascript模块。使用dojo加载程序,您可以从任何地方拉入模块

我建议您自己创建一个名称空间,例如
com.yourmodule
,然后在配置中引用它的位置。例如;您可以为js应用程序创建一个主机“arbitral.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();

});

在一个单独的项目中使用基于Spring的webservice作为后端,在另一个项目中使用基于Dojo的前端,对这些webservice进行AJAX调用,怎么样?这就是我想要的,但是我应该如何相对于Spring项目来构造Dojo项目呢?Spring将在web服务器后面的应用服务器中运行,Dojo可能是由web服务器提供服务的。基于Spring的web服务作为后端在一个单独的项目中如何,在另一个项目中使用基于Dojo的前端对这些web服务进行AJAX调用?这就是我想要的,但是相对于Spring项目,我应该如何构建Dojo项目呢?Spring将在web服务器后面的应用服务器中运行,Dojo可能是由web服务器提供的。谢谢,这看起来正是我想要的!我没有考虑在包中使用绝对URL。我还不确定我们将如何在我们的案例中实施它,但我怀疑它会起作用。这个引导代码可以很容易地添加到我们现在拥有的Spring应用程序中,这很好。很高兴能提供帮助。您应该注意的唯一一点是,自v1.6版以来,它已经发生了根本性的变化。以前使用过一种包装声明格式,从那以后就不再需要它了。谢谢,这看起来正是我想要的!我没有考虑在包中使用绝对URL。我还不确定我们将如何在我们的案例中实施它,但我怀疑它会起作用。这个引导代码可以很容易地添加到我们现在拥有的Spring应用程序中,这很好。很高兴能提供帮助。您应该注意的唯一一点是,自v1.6版以来,它已经发生了根本性的变化。以前使用过包装器声明格式,此后不再需要该格式