5

在工作中,我们有一个(大型...... 1-2 年的开发,团队中有十几个人)即将启动的项目,“高层”正在考虑将 Spring 3 作为 Web 框架(营销热空气。 .. 任何)。

这不是一个微不足道的 Web 应用程序,我们没有使用 Spring 3 的经验(尽管我们已经有一些使用 Spring 2 的经验......但我们绝不是专家)。我们应该学习 Spring 3 并开始编码。

但我有一种感觉,我们会很难过。

Spring 3 GA 已经有一年左右的时间了,书籍似乎还没有赶上。到目前为止,我发现有 Pro Spring 3 和 Spring 的第三版在运行中涵盖了 Spring 3。在线教程并不是很复杂,看起来参考是我们所拥有的坚实基础(这是一个简洁文档)。

正如我所说,我有一种不好的感觉。不要误会我的意思,我不介意学习 Spring 3(容易或困难),但我不确定“项目的安全性”(大型项目、小型时间框架……死亡行军的味道)如果我们选择 Spring 3。

我正在呼吁您的经验。您是否使用 Spring 3 创建过大型项目?你遇到了什么问题?

4

4 回答 4

7

Spring 3 距离 Spring 2 / 2.5 并不是百万光年。如果你对 Spring 和 Spring MVC 有相当的经验,那就去吧。

但请记住,spring MVC 并不是最好的Web 框架。它只是将相同的旧概念向前推进了一点。

如果您想在考虑网站概念的情况下完成一些事情,请尝试 Scala Lift、JRuby + Rails 或 PlayFramework。我并不是说你应该用 scala 或 Ruby 编写所有代码,而是检查这些框架是否让你在 Web 部件上占优势,并使用任何 Java 技术(如 spring IOC)来构建你的逻辑。

此外,如果该应用程序的架构师想要安全而不是潜在的快速交付,那么 Spring 3 是一个不错的选择。

SpringMVC(与 JSP 或 JSTL 一起使用)的缺点之一是它不是真正的基于组件的框架,因此它不适合复杂、丰富的客户端。

附带说明一下,我在一个有很多后端处理的小型网站上使用 spring 3 + MVC,我对此非常满意。

于 2011-04-26T14:39:46.687 回答
2

我建议您查看 Spring Roo: http ://www.springsource.org/roo 和 STS: http ://www.springsource.com/products/springsource-tool-suite-download

使用这些工具,您可以在 10 分钟内生成一个应用程序,从字面上看,数据库访问层具有从您的数据库、授权和身份验证 (Spring Security)、Web UI 层(不同选项)、日志记录反向工程的丰富域对象。它可能不适合您的需求,但它是实际查看 Spring 3 应用程序“应该”是什么样子的绝佳选择。(在 STS 中有一个称为“推入式”重构的重构选项,它使您能够在生成骨架后摆脱 Roo)

SpringSource 的 YouTube 频道也是一个很好的信息来源:http ://www.youtube.com/user/SpringSourceDev

Spring 是一个伟大的框架家族,但是您应该记住,使用它做正确的事情并不容易,并且如果以错误的方式使用它可能会给自己带来麻烦。一般来说,我绝对推荐 Spring,但如果你的时间框架不允许你花一些时间学习细节,你可能应该坚持你已知的技术堆栈。

于 2011-04-27T10:44:03.740 回答
1

我在我的项目中使用 Spring 3。它在概念上与 2/2.5 没有太大区别,同时添加了许多快捷方式,以使用更少的 xml(和代码)实现相同的优点。

我不喜欢 Spring 的一点是类名/接口/包对我来说就像一篇文章:org.springframework.somemodule.somethingmorespecififc.FooSomethingWithBlahContextInBar

此外,如果您不使用 Maven 并尝试手动包含 jar,那么您注定要失败。但是,大型项目应该使用 maven :)

也就是说,Spring Ioc 是任何规模的应用程序的绝佳选择。不过,我并不是 Spring MVC 的忠实粉丝,到目前为止,我从未在项目中真正使用过它。但是大多数 java web 框架都很糟糕。

使用 spring,应用程序配置变得轻而易举,例如设置 DataSource(连接池)、EntityManager 等。与各种框架的集成也容易得多,例如 Struts2、Hibernate (JPA)、Velocity/Freemarker。通过 Spring LDAP 的 LDAP(和 Active Directory)很棒,(我们正在使用它)。

最后,Spring 安全性本身可能是在大型项目中使用 Spring 的唯一原因。

您几乎可以立即使用appfuse对 spring 3 进行测试。

于 2011-04-26T15:02:20.360 回答
0

这取决于您对“大型项目”的定义是什么。也就是说,我已经使用 Spring 多年了。Spring 3 是第一个真正启动 Spring 作为易于使用的框架的主要修订版,我很高兴有任何形式的依赖。

Spring 2.5 是朝着正确方向的飞跃,但 Spring 3 是一个重大改进。Spring MVC 没问题;这不是很棒的 IMO,但它可以使用。

但就 Spring 3 本身而言,我不会对将其用作技术平台有任何疑虑,尽管您应该考虑是否信任 SpringSource/VMWare。(也就是说,我没有任何理由说不信任 SpringSource,尽管他们对 OSGi 和云计算的理解......很奇怪。)

Spring 不会对项目的生命周期产生负面影响,并且编写用于 Spring 的代码往往会使代码质量更高,因为利用注入框架往往会产生更容易的测试。

于 2011-04-26T14:37:06.467 回答