我们使用什么技术的Spring Framework来创建真正的企业应用程序?

时间:2014-10-20 11:04:25

标签: java spring spring-mvc java-ee

我是Java EE(而不是企业应用程序开发)的新手,最初我开始使用EJB。过了一会儿,基于一些研究,我决定使用Spring Framework学习(并最终工作)。

我现在花了将近2个月的时间学习Spring框架(使用互联网和一些书籍中的资料),并且我对Core Spring(如DI,AOP等)有了相当的了解。我已经在一个全面的企业应用程序(错误修复项目)上工作了2-3个月,在那个项目中我们使用了:EJB 3.x以及其他技术。

使用Spring Framework,它具有MVC支持(Web应用程序)。我很难理解一些关于如何使用Spring框架完成的事情,我已经在下面列出了它,如果您节省宝贵的时间来分享您的输入,它将对我有所帮助:

1)成熟的企业应用程序通常使用应用程序服务器(如JBOSS或类似程序),可以使用仅在Apache tomcat中部署的spring应用程序,并且功能与完整的Java EE应用程序相同?

2)我读过Spring框架简化了EJB(在典型的Java EE应用程序中)并且不使用Application服务器所实现的工作,如果这是真的,那么上述观点应该是真的吗?我的理解在这里是否正确?

3)就像在EJB中(主要在会话EJB中)实现Business一样,Spring中的等价物是什么?

最后,为了编写复杂的实时企业应用程序,需要学习哪些弹簧技术/子项目?

3 个答案:

答案 0 :(得分:2)

首先,Spring不是Java EE应用程序服务器。 Spring只是一个基本上允许3件事的框架:依赖注入,代理和Java EE抽象。

1)Tomcat不是完全符合Java EE标准的服务器,您无法使用Spring“完成”服务器。

2)Spring可以在没有Application Client环境的情况下简化Java EE客户端开发,例如使用SimpleRemoteStatelessSessionProxyFactoryBean来访问EJB客户端。

3)Spring支持在客户端 - 服务器架构中导出bean以进行通信,例如使用Hessian或Burlap导出器。

最后,我从未使用任何实时库。

答案 1 :(得分:1)

哇,这个问题的答案可能会导致多本书和几场火焰战争,但我会努力让它保持文明。

1)是和否。 Spring和Java EE的简短比较 简短:只要您不害怕使用JPA或JSF等Java EE堆栈的部分(如果您需要),并且您不需要针对多个数据源进行真正的JTA事务处理,并且您不需要任何其他高级数据源Java EE中的东西,Tomcat上的Spring + ORM Framework + Webframework在完整的Application Server上与Java EE一样强大。

稍微分解一下:

  • Springs Core DI容器与不同的CDI实现相同
  • Springs自带持久性框架(Spring JDBC)的功能不如JPA Standard,但是你甚至可以轻松使用任何容器管理的JPA
  • Springs MVC框架是一个比JSF标准更低级的框架,但你也可以轻松使用那个
  • Springs MVC框架也非常适合REST应用程序,与JAX-RS标准处于同一级别

所以你可以根据自己的喜好混搭,春天的好处之一就是第三方图书馆几乎没有“供应商关系”,没有人强迫你使用你不喜欢的部分不需要或不喜欢。

2)直到更新的Java EE标准才真实,但是现在有了CDI,我认为Java EE已经赶上并开发Java EE Apps就这么简单。

3)一个简单的单例bean。可能使用Transactional注释。

答案 2 :(得分:1)

  

1)成熟的企业应用程序通常使用Application   服务器(如JBOSS或类似的),可以有一个弹簧   仅在Apache tomcat中部署的应用程序   功能是否与完整的Java EE应用程序相同?

正确,Jboss,Weblogic,Websphere是市场上使用最广泛的应用服务器。如果您需要EJB(会话Bean,实体Bean,消息驱动Bean),消息传递,RMI和其他中间件支持,则需要这些服务器。记住Tomcat,Jetty等(http://java-source.net/open-source/web-servers)是网络服务器。因此,您必须根据业务需求确定是否需要App服务器或Web服务器

  

2)我读了Spring框架简化了实现的工作   EJB(在典型的Java EE应用程序中)并且不使用Application   服务器,如果这是真的,那么上面的观点应该是真的吗?是我的   在这里理解正确吗?

在这个世界上没有什么是容易的;)。 Spring支持事务管理,持久性,安全性以及仅适用于EJB的其他功能。此外,Spring还提供其他好处,如AOP,DI等。

  

3)就像在EJB中(主要在会话EJB中)实现Business一样   是我们在Spring中的等价物吗?

你在Spring有@Service。包含业务代码的类可以使用@Service或通常使用@Component

进行专门注释