Я делаю новый Java webapp с Spring MVC 3.0 и хочу использовать как можно больше стандартных Java EE 6. (Я на Glassfish 3.1.1.) Настоящий драйвер хочет использовать веб-структуру MVC, а не JSF.
Итак, я ищу лучший способ для ввода EJB в мои контроллеры Spring. У меня был некоторый успех, но я не доволен тем, как это выглядит, и я надеялся найти лучший способ.
Это сработало, найдя EJB через JNDI:
// 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
}
Но я недоволен необходимостью "mappedName" в аннотации @EJB в контроллере.
Есть ли лучший способ сделать это?
Хорошей новостью является то, что я могу использовать ту же @Inject-аннотацию в EJB и Spring beans, и единственная разница в том, какая структура создает объект и делает инъекцию.