我对依赖注入的概念很陌生,我们目前正在使用JSF和Primefaces编写一个Web应用程序。我们目前正在评估是使用Spring还是EJB3。我真的很接近选择Spring,但后来我听说了CDI。你能给我们一些提示吗,这可能是以下情况中最好的:
我们目前对J2EE世界很陌生,不知道我们是否会使用Glassfish或JBoss(或者只是坚持使用Tomcat)。
Web应用程序基本上是企业CRUD应用程序的原型,需要能够处理复杂的业务逻辑。我们希望关注“适应性”,因为有些要求不明确,将在一年后决定(当我们知道我们是否仍然可以使用原型时)。
我们不能使用Hibernate,因为我们必须编写非常复杂的SQL语句。目前,我们在Spring中的SQL抽象方面取得了很好的经验。
也许我正在比较苹果和橘子,但如果你是j2ee的新手,那么信息太多了。我认为EJB是通过JCP定义的标准,Spring是市场定义的标准,CDI是JCP定义的标准,用于执行Spring可以执行的操作。但我当然错了; - )。
THX,
iuiz
答案 0 :(得分:8)
Lincoln Baxter在解释本文中的技术差异方面表现出色:http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/长话短说:Spring和CDI都能够提供依赖注入。一个是Java EE标准,另一个是众所周知的技术。 Glassfish和JBoss都可以毫无问题地运行Spring应用程序和CDI应用程序。至于无法使用Hibernate,你不能在Hibernate中使用native SQL。如果可以,请为您的团队节省大量额外的简单CRUD代码。