Вопрос

Я не фанат JSF. Весна MVC имеет много смысла для меня, и я использовал его в прошлом.

Можете ли вы разговаривать из этого или предоставлять советы по хорошему интеграции в Jee6 и поделиться и GOTCHAS с CDI.

Я не против иметь контекст приложения только для вещей MVC, но если я использую @inject или @ejb в моем контроллерах MVC, что будет неправильно?

SWE3 кажется интересным, хотя он готов к производству?

Это было полезно?

Решение

Можете ли вы рассказать меня из этого или предоставлять советы для интеграции его красиво в Jee6 и поделиться и GOTCHAS с CDI

Может быть, я ошибаюсь, но я думаю, что вы как-то должны сделать выбор между CDI и ди-части весной, один из них должен отвечать за создание объектов для возникновения магии. Поэтому, если вы хотите использовать CDI с Spring MVC, вам нужно сделать ваши контроллеры CDI Beans. От Javaone 2010: Java EE 6 Панель "Что мы делаем сейчас?" Примечания:

SpringMVC и CDI? => Технически возможен: используйте CDI Beans в качестве контроллеров (но Reza говорит, что они не видят достаточно спроса на SpringMVC, чтобы сделать работу).

Я также тепло предполагаю посмотреть на Java EE 6 (CDI / EJB 3.1) XOR Spring Core Reloaded.

Я не против иметь контекст приложения только для вещей MVC, но если я использую @inject или @ejb в моем контроллерах MVC, что будет неправильно?

Весна обеспечивает встроенный Поддержка «в INJECT» от JSR-330 А также дает немного магии для @ejb. Если это все, что вы ищете, весна будет работать. Но это не то, что дает вам CDI (JSR-299).

Другие советы

Другой вариант будет использовать JAX-RS в качестве контроллера (с реализацией Джерси, вы сможете пересылать контроль на JSP) и использовать JSP для вашего представления. Таким образом, вам не нужно беспокоиться о интеграции весны с Java EE.

Например, у вас может быть домородок:

@Path("/")
@Stateless
public class HomeController {

    @Context
    HttpRequest request; // Injects request object so you set attributes.

    @EJB // Inject your EJB
    EmployeeServiceLocal employeeService;

    @GET
    public Viewable getHomePage() {

        Employee employee = employeeService.getEmployee();
        request.setAttribute("employee", employee);
        return new Viewable("/home.jsp", null);
    }
}

Это направило бы вас в JSP, называемое home.jsp, и вы сможете получить ваши данные на JSP через объект запроса. Обратите внимание, что JAX-RS используется для спокойных веб-сервисов, поэтому чтобы понять, что происходит в коде ниже, вам придется иметь понимание отдыха.

Использование CDI от весны Объясняет, как построить мост CDI-To-Spring с BeanFactoryPostProcessor, который импортирует все бобы из CDI BeanManager в контекст пружины приложения.

Паскаль прав в том, чтобы вы могли сделать выбор между Spring DI и CDI, но с таким подходом вы можете сделать выбор за модуль.

В типичной прокладке войны есть один веб-модуль, использующий несколько модулей услуг и настойчивых модулей в Web-Inf / lib. С мостом CDI-To-Spring вы можете превратить модули Web-Inf / Lib в архивы CDI Bean, в то время как веб-модуль нет Архив бобов и использует только пружину ди.

Мост обращается к CDI BeanManager через JNDI и создает фасоль Spring Factory для каждой фасоли CDI.

Я использую этот мост именно для вашего применения: интеграция весной MVC Web Frestend с бэкэнда Java EE 6.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top