Spring или CDI или EJB3

Я довольно новичок в концепции внедрения зависимостей, и в настоящее время мы пишем веб-приложение с использованием JSF и, возможно, Primefaces. В настоящее время мы оцениваем, использовать ли Spring или EJB3. Я был очень близок к выбору Spring, но потом услышал о CDI. Можете ли вы дать нам несколько советов, которые могут быть лучшими в следующей ситуации:

В настоящее время мы довольно новички в мире J2EE и не знаем, будем ли мы использовать Glassfish или JBoss (или можем просто придерживаться Tomcat).

Веб-приложение в основном является прототипом корпоративного CRUD-приложения, которое должно уметь обрабатывать сложную бизнес-логику. Мы хотим сосредоточиться на "адаптивности", так как некоторые требования не ясны и будут определены примерно через год (когда мы узнаем, сможем ли мы все еще использовать прототип).

Мы не можем использовать Hibernate, поскольку нам придется писать довольно сложные операторы SQL. В настоящее время мы получили хороший опыт работы с абстракцией SQL в Spring.

Может быть, я сейчас сравниваю яблоки и апельсины, но информации слишком много, если вы новичок в j2ee. Я думаю, что EJB - это стандарт, определенный с помощью JCP, Spring - это стандарт, определяемый рынком, а CDI - это стандарт, который также определен JCP, чтобы делать то, что может делать Spring. Но я, безусловно, ошибаюсь;-).

Спасибо,

iuiz

1 ответ

Решение

Линкольн Бакстер отлично объясняет технические различия в этой статье: http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/ Длинная история кратко: и Spring, и CDI смогут обеспечить внедрение зависимостей. Один из них - это стандарт Java EE, другой - общеизвестная технология. Glassfish и JBoss без проблем запускают приложения Spring и CDI. Если вы не можете использовать Hibernate, вы не можете использовать собственный SQL в Hibernate. Сохраните вашу команду, если сможете, много лишнего простого кода CRUD.

Другие вопросы по тегам