gpt4 book ai didi

spring - 使用 Spring MVC 3.0 和 @EJB 注释而没有映射名称?

转载 作者:IT老高 更新时间:2023-10-28 13:44:31 25 4
gpt4 key购买 nike

我正在使用 Spring MVC 3.0 创建一个新的 Java webapp,并希望尽可能多地使用标准 Java EE 6 的东西。 (我在 Glassfish 3.1.1 上。)真正的驱动程序想要使用 MVC Web 框架而不是 JSF。

所以我正在寻找将 EJB 注入(inject)我的 Spring Controller 的最佳方法。我取得了一些成功,但我对它的外观不满意,我希望找到更好的方法。

通过 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
}

但我不满意在 Controller 的 @EJB 注释上需要“mappedName”。

有没有更好的方法来做到这一点?

不过,好消息是我可以在 EJB 和 Spring bean 中使用相同的 @Inject 注释,唯一的区别是哪个框架创建对象并执行注入(inject)。

最佳答案

如果你使用

mappedName="java:module/Service"

而不是

mappedName="java:global/springtest/Service"

您不必担心应用程序名称。这使代码更具可移植性。我想这会解决你的一些问题

关于spring - 使用 Spring MVC 3.0 和 @EJB 注释而没有映射名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7844225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com