spring projects中提供的模块在实际使用中是什么样的情况
最近在看spring mvc,看了会Designing and Implementing a Web Application with Spring看到两章之后就有点受不了了,开始的CQRS还算能接受毕竟是通用模式,到后来它提供了自己的MockMvc
这个也就算了,但是到后来的Java Config
和Thymeleaf
就有点不太能接受了,是不是跟市场使用稍微有点远。直到看到Spring Projects发现基本上他是什么都包括了什么Spring Data竟然还有Spring AMQP这个简直比.NET
平台都夸张啊。
我想知道这些东西在实际使用中是否适用?比之其他相应的开源库RabbitMQ
之类的如何?Spring
本身如何?相对于Struts2
如何,考虑到市场用量大,框架本身,初学者如何选择?是适合两者都学(struts2+spring)还是只用Spring
系列?合适的的视图引擎是哪个?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
关于“这些东西在实际使用中是否适用” -- 这些东西非常适用, 尤其是在企业的开发中 -- 当然如果是在初创企业, 也许连Java都不屑用更别提Spring了
楼主提到了Spring, Spring AMQP, Spring MVC, Spring Projects, Spring Data, RabbitMQ, Struts2, ThyMeleaf这些概念。 首先需要理清这些概念之间到底有何不同和联系。
Spring -- 楼主提到的Spring, 似乎是指 Spring Core, 也就是IoC, Dependency Injection的容器概念。 Spring Core 是所有Spring 生态环境的基石 --非常非常非常适用。 作为之前从EJB过来的开发者, 我是深深的体会到了Spring Core给开发者带来的爆炸性的变革。 非常难以想象没有Spring Core的企业Java开发会是什么样的。
Spring MVC -- 是Spring Projects 里面一个Module, 你可以选择用或不用, 是一个像Struts2 一样的Web 框架而已。 但是它提供的功能比Struts2简洁直接而又强大的多: 例如 Interceptor 拦截器可以省去你每次去写Servlet Filter的烦恼; @Requestmapping 省去你配置 url的烦恼; @RequestBody, @ResponseBody 省去了你把Java 对象转化成JSON的烦恼; @ControllerAdvice 省去了你Error Handling的烦恼; -- 实际应用方面, 我之前的2个大型项目全都用的Spring MVC.
Spring AMQP, 或者 Spring JMS -- 是 Spring Projects里的一个module,可用可不用。 但是如果你需要用到Message Queue( RabbitMQ 只是其中的一种, 其他的还有N多, ActiveMQ也是另一个常用的), 但是你又不用Camel/Mule 或Spring Integration(又一个Spring Projects里的杀手级工具), 那么你一定会庆幸Spring 给你了这么一个好用的 amqpTemplate/jmsTemplate的封装。
既然你提到了RabbitMQ, 如果你用过RabbitMQ提供的javaClient, 如果你用自己写过ConnectionFactory -- 你一定不会怀疑Spring Amqp给开发者带来的好处
Spring Data. -- 这个我还真没在实际项目中真正的用过, 但是我们的确是用到过Spring Data里面对不同的数据库中SqlException的翻译---非常非常有用
Thymeleaf --只是一种模板。 有或没有Spring, thymeleaf都是一种非常适用的模板工具-- Struts2 + thymeleaf 也是很有效的
总之, 在实际的开发中 Spring 绝对适用--再进一步, Spring里的设计绝对是顶级的 只有你想不到, 没有Spring 做不到的。
最后, 希望别把Spring 和.NET比。 两者没有关系-- 再者Spring的可靠性估计比.NET Runtime好不知多少倍。。 这些年来, 我们在Production中出现的问题中, 没有一样是因为Spring的原因
cqrs目前还是相对高端的。Spring MVC/IOC 这个用的最多