我在一家刚接触java的公司工作,我是唯一的java程序员,我需要在几个月内编写大约10个系统。该公司还有另外两个了解基本java的程序员。不是春天或类似的东西。
我使用Spring,hibernate和MySQL做了很多原型。 SA正在推动我们使用EJB(我们刚刚获得JBoss)。所以现在管理者正在考虑让我将DAO和Hibernate层移动到EJB中。
因此我们将使用Spring作为MVC(web),然后使其为所有数据访问执行EJB类,以便Jr程序员不必知道如何访问MySQL和AS / 400。
所以我的问题。我想知道我是否可以在EJB中使用Spring ..就像JDBCTemplate和Hibernate一样。我正在尝试将DAO层移到EJB内部。
可以这样做吗?如果是这样的话呢?
答案 0 :(得分:2)
您可以在EJB中使用Spring,但它相当复杂,并且不会比单独使用spring带来好处。我不建议那样做。
答案 1 :(得分:2)
作为一个轻量级容器,Spring通常被认为是EJB的替代品。我们相信,对于许多(如果不是大多数)应用程序和用例,Spring作为容器,结合其在事务,ORM和JDBC访问领域的丰富支持功能,是比通过EJB容器和EJB实现等效功能更好的选择。
但是,重要的是要注意使用Spring并不会阻止您使用EJB。实际上,Spring使得访问EJB以及在其中实现EJB和功能变得更加容易。此外,使用Spring访问EJB提供的服务允许稍后透明地在本地EJB,远程EJB或POJO(普通旧Java对象)变体之间切换这些服务的实现,而不必更改客户端代码。
这是链接:
http://static.springsource.org/spring/docs/2.5.4/reference/ejb.html
答案 2 :(得分:0)
是的,可以做到。查看处理EJBS的Chapter 22 Spring Framework Documentation。您甚至可以使用@EJB
annotations in your Spring POJOS和@Autowired
annotations in your EJB layer。
程序员倾向于告诉你,每当你将Spring与EJB混合时,Pink Dolphin就会死掉......好吧,我经常这样做,而且它们还活着。
答案 3 :(得分:0)
检查您的要求,考虑系统的设计 - 您认为Spring和Java EE的混合是您的最佳实践吗?这个系统在生产中是否可管理,可扩展,可维护?
您可以使用Spring + Hibernate并使用JNDI配置的数据源。您甚至可以通过仅使用tomcat来执行此操作。
我无法看到将DAO层放入EJB的良好设计理由,因此请考虑您的设计并为其准备参数。恕我直言,这是一个混合,只是使系统更复杂和错误。
将整个业务和持久层移动到EJB可能是合理的,这取决于您的具体情况。尝试编写专业版和专家名单。什么是好处,什么是骗局。