Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wicket应用程序结构最佳实践_Wicket - Fatal编程技术网

Wicket应用程序结构最佳实践

Wicket应用程序结构最佳实践,wicket,Wicket,我正在使用一个应用程序,它有一些Wicket页面,分为一些应用程序。我们正在扩展Wicket开发以替代其他遗留内容。目前,还没有明确的路径来为每个工作流编写新的Wicket应用程序,或者我们是否应该有一个包含许多URL映射的大型应用程序。我也没有找到任何关于这方面的信息 就我们而言,我们看到了以下问题: 许多Wicket应用程序模式: 每个应用程序(工作流)都可以轻松安装,而无需太多麻烦 即使不需要更多的时间,您最终也会编写更多的Java类(至少对于每个应用程序,您至少需要一些基本结构) 每个

我正在使用一个应用程序,它有一些Wicket页面,分为一些应用程序。我们正在扩展Wicket开发以替代其他遗留内容。目前,还没有明确的路径来为每个工作流编写新的Wicket应用程序,或者我们是否应该有一个包含许多URL映射的大型应用程序。我也没有找到任何关于这方面的信息

就我们而言,我们看到了以下问题:

许多Wicket应用程序模式:

  • 每个应用程序(工作流)都可以轻松安装,而无需太多麻烦
  • 即使不需要更多的时间,您最终也会编写更多的Java类(至少对于每个应用程序,您至少需要一些基本结构)
  • 每个应用程序的默认URL都由其主页访问,因此不需要进一步配置
一个大的应用模式:

  • 每个工作流都需要一个页面,该页面必须映射到应用程序类中。就我所见,xml文件中没有配置来归档这个,但是应该可以开发一些模式,允许在一些xml文件中构造它。缺点:第一次需要更多的时间
  • 对于进一步的添加,它应该比使用应用程序模式更容易一些,但是考虑到工作流开发总是比初始配置大得多,这并不会产生真正的影响
  • 每个工作流默认URL都可以通过URL映射访问,并且可以很容易地进行更改,这似乎比使用应用程序方法要容易一些,但也没有太大的区别
现在,我要找的是:

  • 基于经验的意见,可能是决定采用某种方式的论据
  • 是否有来自Apache或其他来源的相关文档?如果是这样,一些参考资料将是一个很好的建议
      • 你可能有多少共同的尾波
      • 不同的工作流是否有不同的性能/负载容差/可用性要求
      这些是我通常用来决定两件事是否应该放在一个应用程序中的问题,这与Wicket无关

      显然,许多共享代码指向单个应用程序。当然,您仍然可以使用单独的应用程序,所有这些应用程序都取决于一组共享模块,但实际上,您将花费大量时间来保持模块的同步

      类似地,不同的可用性需求可能会引导您走向不同的应用程序,因为您可能希望单独部署它们


      最困难的情况是,如果您有很多共享代码,并且仍然希望单独部署它们,那么在这种情况下,可能需要考虑一种多层方法(多个前端连接到一个公共后端)。

      据我所知,您仍然可以在一个Web归档中部署所有Wicket应用程序

      这样做,在我看来,您失去了将代码分离到不同Wicket应用程序的唯一真正优势。如果将代码分为多个Wicket应用程序类

      • 您必须考虑以相同的方式配置每个Wicket应用程序,并且不要忘记单个Wicket应用程序(将其包含在web.xml中,在init()方法中调用相同的设置,…)
      • 正如您自己所说,您正在编写更多的样板代码
      配置和代码将比“单一应用程序”方法更复杂。使用单个应用程序

      • 您只需在单个应用程序类中装载每个工作流的起始页…这是一行代码,与多个应用程序方法中的新类和一些web.xml配置行相比

      因此,如果您不想单独部署工作流,我会选择单个应用程序。这让事情变得容易多了。尤其是当您累积了多个工作流时,单一应用程序方法可能更易于维护。

      可能在您的场景中这并不重要,但对我来说,有一个重要的区别,在一个大的应用程序中,所有工作流共享同一个用户会话(如果您具有用户身份验证,这一点很重要),而如果将每个工作流拆分为多个应用程序,则每个工作流都有一个不同的会话。嗯,我的意思是,在一个Web模块中有不同的Wicket应用程序,因此它们仍将共享会话…您只需在Web.xml中定义每个应用程序,但所有应用程序都位于同一个WebContainer上。因此,这实际上不是会话范围或类似的问题ughts,这更多的是一个如何组织一个大型应用程序的最佳方式的问题。好吧,看起来很公平。他们确实会在一起,可能在不同的maven模块中,但这是另一个可以控制的故事。我在Apache Wicket网站上寻找这样的答案。现在,我正在考虑不同的应用程序方法,就像我一样找不到在xml文件中配置url映射的方法(至少不实现它)。您是否在应用程序类中对每个配置进行了url映射?我还没有在Wicket中尝试对页面流进行XML配置,因为我非常喜欢以编程方式进行配置。但是,在您的情况下,这可能是有意义的,因为您显式地对工作流进行了建模。Wicket和Spring Web Flow集成在一起,但它确实存在已经2年没有维护了…如果没有更改,可能无法使用当前Wicket。除此之外,您可以创建自己的XML配置机制来建模工作流,甚至可以创建自己与Spring Webflow的集成。