我是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中的等价物是什么?
最后,为了编写复杂的实时企业应用程序,需要学习哪些弹簧技术/子项目?
答案 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一样强大。
稍微分解一下:
所以你可以根据自己的喜好混搭,春天的好处之一就是第三方图书馆几乎没有“供应商关系”,没有人强迫你使用你不喜欢的部分不需要或不喜欢。
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
进行专门注释