我是一个Java SE开发人员,但我有丰富的web背景(PHP,Perl/CGI等),现在我开始了新的项目。它将有web界面,意大利面业务逻辑,关系数据库作为存储和到其他服务的连接。我从头开始做。
我的同事告诉我使用spring、spring security和struts。我简要介绍了Java EE 6规范,发现它几乎涵盖了企业应用程序的所有方面。我问我的同事,为什么他们需要spring和struts,但看起来他们使用这些技术只是因为他们熟悉这些技术,而不熟悉经典的Java EE 6堆栈。
所以,我的问题是: Java EE 6有什么不好的地方?如果有JNDI查找,为什么我还需要spring?为单元测试创建假InitialContext需要一两天的时间。这就是全部:我不需要像spring这样的外部工具。如果Servlets规范中内置了安全性,为什么我还需要spring-security呢?我可以使用web.xml将任何请求映射到任何servlet,而不需要struts.xml。我可以使用servlet过滤器而不是struts拦截器。有RMI,所以我不需要spring-remote。以此类推..
如果有JavaEE6,我为什么还要为那些花哨的东西而烦恼呢?
我真的很想找出Java EE 6不够用的情况。你有吗?
谢谢!
发布于 2011-01-15 11:49:36
人们为什么使用Spring,为什么它如此受欢迎,这需要一点历史。
过去,Spring比Java应用程序更简单。我指的是EJB2.x规范。我有一种感觉,那是一种对该规范的复杂性质的反叛。开发人员想要一个更简单的体系结构,Spring为他们提供了这一点,允许他们编写POJO (Plain Old Java Objects),而不是必须实现特定接口才能获得所需功能的类。
Spring还使两个原则更加流行:控制反转(IoC)和依赖注入。这两个原则结合在一起,提供了一种不同的方式来连接应用程序的各种组件,并在应用程序运行时将这些组件放入应用程序中。这一点,再加上仅仅编写POJO的想法对许多人来说是非常有吸引力的,因为代码更简单,连接所有组件也更容易。
较新的Spring规范取消了EJB3必须提供的一些功能,但Spring远不止是一个IoC容器。它为JDBC访问数据库、处理事务的多种简单方法、测试实用程序、MVC堆栈等提供了很好的模板。它曾经很受欢迎,现在仍然很受欢迎。我听到的一个笑话是
"EJB3,没人问的问题的答案是...“
EJB3是一个很好的选择。Spring是一个很好的选择。Grails也是一个不错的选择(在幕后使用Spring和Hibernate )。
发布于 2011-01-15 11:28:23
Spring对于Java来说不是必需的。Spring使复杂的Java组件更易于使用。
发布于 2011-01-15 14:56:27
“那么,我为什么需要弹簧呢?”
伊利亚!最后,您说服了我(希望是您自己),您不需要Spring。实际上,在所有这些堆中没有什么特别好的东西。除非你已经习惯了。他们写了一本关于网络技术的书,然后把其他的计算机科学知识加入其中,并称之为RESTfull。
“然而,想象一下有很多处理表单输入和模型的代码。每个控制器可能有一个视图。”
阿米尔,-考虑得很周到我所知道的web框架之间的真正区别在于组件的定义是什么。Struts有三种类型的组件-视图组件、控件组件和模型组件。乍一看,它看起来不错(肯定比其他的要好)。但是你能用这些组件构建什么呢?-一个页面视图,一个页面控制器和一个页面模型。天知道从这三行组件中绑定项目的成本是多少-如果可能的话,这可能是一个巨大的配置。
真正的解决方案是(就像你在上面引用的那样)是一个组件的概念,每个组件都有自己的视图、控制器和模型。到目前为止,只有一个框架做到了这一点-- HybridJava。什么是Spring中的网页构建块?
https://stackoverflow.com/questions/4697740
复制相似问题