【发布时间】:2011-12-12 06:05:55
【问题描述】:
我正在使用 Spring MVC 3.0 创建一个新的 Java webapp,并希望尽可能多地使用标准 Java EE 6 的东西。 (我在 Glassfish 3.1.1 上。)真正的驱动程序想要使用 MVC Web 框架而不是 JSF。
所以我正在寻找将 EJB 注入我的 Spring 控制器的最佳方法。我取得了一些成功,但我对它的外观不满意,我希望找到更好的方法。
通过 JNDI 找到 EJB,这很有效:
// EJB
@Stateless
public class Service {
@PersistenceContext(name="MAIN")
private EntityManager em;
public void doSomething() { .... }
}
// Spring
@Controller
public class HomeController {
@EJB(mappedName="java:global/springtest/Service")
private Service service;
// controller methods use service
}
但我不满意在控制器的 @EJB 注释上需要“mappedName”。
有没有更好的方法来做到这一点?
不过,好消息是我可以在 EJB 和 Spring bean 中使用相同的 @Inject 注释,唯一的区别是创建对象和执行注入的框架。
【问题讨论】:
标签: spring model-view-controller ejb