Боб CDI, получающий доступ к бобам Spring? - PullRequest
4 голосов
/ 01 апреля 2011

Я знаю, это звучит странно, смешивая CDI (Weld) и Spring для контроллера.

Но представьте себе такую ​​ситуацию:

  1. С CDI я могу использовать @ConversationScoped, что является одним из моих требований (и до сих пор я не знаю, могу ли я использовать пружину для такого рода областей, потому что, если я могу, я мог бы просто заменить Weld на Spring на el-resolver в face-config.xml)
  2. Моими объектами служб (@Service) наряду с DAO (@Repository) необходимо управлять Spring

Теперь возникает вопрос: как внутри моего контроллера какя получаю доступ к своему сервисному объекту?

Что-то вроде этого не будет работать, я думаю:

@Named
@ConversationScoped
public class MyBean {
   @Named
   private SomeOtherBeanManagedByCDI myOtherBean; // this will work

   @Autowired
   private MySpringBean mySpringBean; // dont think that this will work

   ....
}

Есть какие-нибудь идеи о том, как использовать пружинные бобы внутри bean-компонента cdi?Спасибо!


обновление

Я только что проверил решение из этой статьи , и пока оно работает нормально, и я чувствую облегчение.

Спасибо!

Ответы [ 3 ]

5 голосов
/ 25 июня 2011

Рик Хайтауэр написал хорошую библиотеку расширений, которая поддерживает внедрение компонентов Spring в компоненты CDI и наоборот:

http://rick -hightower.blogspot.com / 2011/04 / КДИ-и-весна-гостиная-в-harmony.html

2 голосов
/ 30 сентября 2011

Все еще есть хороший принятый ответ и некоторые хорошие исправления в ОП, но я думаю, что еще есть время указать на модуль Seam Spring .

1 голос
/ 30 сентября 2011

Кроме того, если вы пытаетесь управлять состоянием на нескольких страницах и хотите эффективно управлять диалогами для Struts, JSF или Spring MVC, Spring Web Flow предоставляет именно то, что вам нужно, в комплекте с bean-объектами в области потока. жить в течение потока, более или менее эквивалентного разговору в Seam / CDI. Если вам нужно более долговечное решение для управления потоками, модуль Activiti SPring упрощает настройку некоторых bean-компонентов, работающих в течение всей области действия процесса, аналогично функциональности, которую Seam имел для jBPM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...