2

我正在研究可用于开发 ERP 系统的框架。

我从未使用过 Spring,对此我一无所知。但是我已经使用 Tapestry IoC 很长时间了,但我并没有使用它的所有功能。

这是我到目前为止所达到的:

Tapestry IoC 应用程序可以很容易地分布在模块之间(JAR 文件),每个模块可以贡献以下内容:

  • 服务定义
  • 服务配置:可以使用集合构建服务,这些集合可以由不同的模块提供。但是它有一些限制,比如有条件地覆盖该集合中的元素,比如在决定是否覆盖之前检查贡献的配置元素。

(如果我错了,欢迎纠正我)

Tapestry IoC 还有很多东西,我很确定,只是我还没有探索过。

我主要关心的是在模块之间分发我的应用程序,就像在不同的 JAR 文件中一样。这有助于轻松安全地插入新功能。

有没有人使用过 Tapestry IoC 和 Spring IoC 的最新版本,所以他愿意提供对它们的见解?

  • Spring 是否提供像 Tapestry 这样的分布式配置的概念?
  • 这些框架中的一个在哪个方面比另一个更出色?
  • Spring能在短时间内轻松学会吗?
  • 与基于 ajax 的前端(如 GWT 或 SmartGWT)集成哪个更容易、更有效?
  • 在提供诸如安全、管道、调度、事务(以及您可能建议的任何其他服务)之类的企业服务方面,哪个更容易、更有效?
  • 还有什么我应该问的???
4

3 回答 3

1

早在 2008 年我就使用过 GWT 和 Tapestry。它运行良好并且很容易设置。我现在自己在做一个 Tapestry 项目,所以我很喜欢它。

我发现 Spring IOC 很容易理解和学习。您应该能够在一个周末左右的时间内学习基础知识。

另一边的挂毯更难掌握,但更有价值。Tapestry IOC 也可以在许多其他环境中重用,我也将它用于简单的非 Web 相关项目。Tapestry 文档现在好多了。Tapestry的Jumpstart Demo Application也非常适合解释和测试基础知识和更高级的主题。

挂毯的优点是,一旦你了解了它就很容易使用。我发现自己很容易深入研究源代码并且理解它没有太大问题。首先,我不喜欢这些服务是代理。但它更多的是一种味道。

另请注意,挂毯从未获得应有的动力。众所周知,Tapestry 中的 @CommitAfter 机制与 2008 年一样被破坏,我无法让那些负责修复它的人。(我最近尝试过,但又失败了)。

挂毯的其余部分使用起来很愉快。

另一方面,Spring 有很多业务支持和大量信息。它在Java世界中也被广泛使用。因此,如果您参与其中,您的专业简历将拥有强大的资产。

所以最终你可以自由选择。我的心说去 Tapestry,但我的大脑说春天赢了。因为跟随你的心会让你快乐,但跟随你的大脑会让你更成功,所以答案很明确。春天赢了。但也可以花些时间尝试 Tapestry。尤其是 Tapestry IOC 是一个非常可重用的工具,它可能会在您的日常程序员生活中随处使用。

于 2013-09-29T17:51:34.127 回答
1

安全的答案始终是 Spring(与 struts 相同;))。

Spring 的优势在于您会找到更多关于它的资源(书籍、文章、博客文章)。因此,如果您需要大量示例,那么 Spring 是不费吹灰之力的,尤其是有人可能已经尝试过将 Spring 和 GWT 一起使用。就配置而言,最新版本的 Spring 也不是那么糟糕;)

另一方面,Tapestry 非常强大。你得到了很多开箱即用的东西(例如提到的模块化),这在 Spring 中是可能的,但我不知道它们是否开箱即用(可能是,在 2.0 之后,我从未使用过 Spring,那样)。值得一提的是,有了 Tapestry,您将获得完整的 Spring 支持,因此即使在 T5 中无法正常工作,您仍然可以创建 Spring bean 并在 T5 中使用它们^^

于 2013-09-19T05:55:10.150 回答
0

您可以找到 TapestryIoc 和其他 IoC 框架的比较:

来自:http ://tapestry.apache.org/ioc.html

Spring 是最成功的 IoC 容器项目。Spring 项目结合了非常好的 IoC 容器、集成的 AspectJ 支持以及构建在容器之上的大量库。Spring 是一个出色的应用程序容器,但缺少框架容器所需的许多特性:

Spring bean 可以通过名称(或 id)连接在一起,但不可能引入额外的命名抽象。Tapestry 4 的“基础设施:”抽象是允许轻松覆盖内部 Tapestry 服务的关键,而不必复制庞大的相互关联的服务网络(在 Tapestry 4.0 中有近 200 个)。

尽管 Spring 允许拦截 bean,但它以新 bean 的形式这样做,使未拦截的 bean 可见(并且容易被滥用)。Tapestry IoC 将服务“包装”在拦截器中,防止对核心服务实现的未拦截访问。

Spring 的 XML 配置文件非常冗长。这在 Spring 2.0 中得到了改进,但仍然比 T5 IoC 模块类更加冗长。

Spring有简单的map/list/value配置方案,但不是分布式的;它是单个 bean 定义的一部分。Tapestry 5 IoC 允许从多个模块组装服务配置。这对于框架的无缝可扩展性非常重要,零配置(只需将模块放入类路径中,所有内容都挂钩)。

于 2013-09-26T06:53:07.810 回答