Pri*_*ime 2 java enterprise spring hibernate ejb
我已经做了一段时间的Java标准版开发,框架和解决方案对我来说相当明显(Swing for GUI等).我最近开始了为自己的需求构建服务器和托管网页的任务(除了托管网页外,服务器将要做的事情还包括个人SVN托管以及将更多Web功能集成到现有和未来的应用程序中).对于只编码一台计算机的编码(即分布式计算等并不是真正需要考虑的问题) - 我在Spring,Hibernate和EJB之间并不完全确定,并且对每种计算机的功能都不是很了解.信息将不胜感激.我知道Spring是EJB的替代品,而Hibernate是一个对象关系映射库,EJB是否也将它们结合起来?
小智 9
EJB3总结包含3种bean类型; 消息驱动Bean,无状态/有状态会话Bean和实体Bean或JPA(Java持久性架构).Hibernate可以用作JPA提供程序,但不必以这种方式使用.
Spring的功能大致类似于Message Driven Beans和Stateless/Stateful会话bean,但它没有与JPA等效的功能.相反,它允许您直接使用JPA或hibernate,但如果您将Spring与JPA结合使用,则需要一个EJB容器.
另一个区别是EJB是由'containers'提供的,而spring是一个可以部署到java se应用程序或java servlet容器Web应用程序(如jetty或tomcat)的框架.它是一个重要的区别.Tomcat不是EJB容器,只是一个servlet容器,因此如果您只使用基本的tomcat,则无法使用EJB,但可以通过在Web应用程序中包含所需的spring jar文件来使用spring(WEB-INF/lib ).在这种情况下,您也不会使用JPA,但您可以使用hibernate.
一些EJB容器的Java服务器包括weblogic,websphere,jboss,geronimo和glassfish.如果将Tomcat与OpenEJB结合使用,它可以成为EJB容器.
在我正在开发的应用程序中,我正在使用tomcat + openejb,因此我有一个EJB容器,因此我可以将JPA与OpenJPA一起用作持久性提供程序.我正在使用Spring MVC进行Web应用程序开发,并且很可能会使用Spring安全性.我可能也会使用无状态会话EJB来封装业务功能,但我也可以轻松使用Spring服务/ dao bean而不是无状态会话ejbs.
有时候很容易弄清楚你应该使用哪个框架或容器的哪些部分,并且实际上归结为偏好或使用另一个中不存在或易于使用的功能.另一个考虑是内存利用率.一些ejb容器在没有运行应用程序的情况下启动时会占用大量内存.这是我最终使用tomcat + openejb的一个原因.希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
2368 次 |
| 最近记录: |