用Spring 3开始一个项目

时间:2011-04-26 14:31:36

标签: java spring web-applications spring-mvc spring-3

在工作中,我们有一个(大约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 个答案:

答案 0 :(得分:7)

春季3距离春季2 / 2.5不远百万光年。如果您对弹簧和弹簧MVC有相当多的经验,那就去吧。

但请记住,Spring MVC不是最好的 Web框架。它只是采取了相同的旧概念。

如果您想要根据网站的想法完成某些事情,请尝试使用Scala Lift,JRuby + Rails或PlayFramework。我并不是说您应该使用scala或Ruby编写所有代码,但要检查这些框架是否为Web部分提供了优势,并使用任何Java技术(例如spring IOC)来构建逻辑。

此外,如果该应用程序的 Architects 希望安全性超过潜在的快速交付,那么Spring 3是一个不错的选择。

SpringMVC(与JSP或JSTL一起使用)的缺点之一是它不是真正基于组件的框架,因此对于复杂的富客户端来说它并不理想。

作为旁注,我在一个小网站上使用spring 3 + MVC进行了大量的后端处理,我很满意。

答案 1 :(得分: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中有一个名为'push-in'重构的重构选项,它可以让你在生成骨架后摆脱Roo)

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

Spring是一个很棒的框架系列,但是你应该记住,用它做正确的事情并且以错误的方式使用它是不容易的,你可以让自己陷入困境。 一般来说,我绝对会推荐Spring,但是如果你的时间框架不允许你花一些时间学习细节,你应该坚持使用你已知的技术堆栈。

答案 2 :(得分: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向第3弹拍摄。

答案 3 :(得分:0)

这取决于你对“大项目”的定义。也就是说,我多年来一直在使用Spring; Spring 3是第一个主要版本,真正启动Spring作为一个易于使用的框架,我很高兴有任何依赖。

Spring 2.5正朝着正确的方向迈进,但是Spring 3是一个重大改进。 Spring MVC没问题;它不是梦幻般的IMO,但它是可用的。

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

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