Могу ли я использовать springsmvc + ejb + hibernate для распределенного приложения?

Могу ли я использовать комбинацию пружин MVC + EJB + Hibernate для моего приложения. Мое приложение является распределенным приложением. Так подходит ли эта комбинация для моего приложения?


Я хочу разработать распределенное приложение и начал кодирование GUI с использованием springs-mvc
и теперь я хочу получить доступ к базе данных, и я в замешательстве, чтобы использовать jdbc или hibernate?

Я где-то читал, что hibernate не подходит для распределенных приложений. Так может кто-нибудь, пожалуйста, помогите мне в выборе погоды использовать jdbc или hibernate?

заранее спасибо.

1 ответ

TL;TR: Да, вы можете.

Длинная версия:

JDBC против JPA (или Hibernate): JPA / Hibernate имеет тенденцию быть подходящим вариантом, если вам нужна объектно-ориентированная версия вашего домена (в общем, это что-то хорошее). JDBC больше используется для задач производительности (пакетных) или простых инструментов запросов (даже для устаревших систем).

SpringMVC против JSF: JSF используется, когда вы предпочитаете использовать библиотеку компонентов (например, primefaces), SpringMVC имеет тенденцию использоваться, когда вы хотите получить полный контроль над своим Javascript+CSS+HTML. Как вы уже знаете, JSF - это абстракция, которая максимально избегает работы с веб-технологиями. Ни один не лучше другого, просто другой

Spring Framework против EJB / CDI: набор предпочтений, они почти такие же, как и у других, модель программирования почти такая же, имейте в виду, что некоторые характеристики Spring являются эксклюзивными (Vendor Lock вперёд!), И в некоторой степени (мой предвзятость) мнение) EJB+CDI более элегантный и простой.

Альтернативное решение: если вы знакомы с SpringMVC, так что пользуйтесь им, вы даже можете использовать его на сервере Java EE

Предупреждение: не используйте старый ошибочный способ tomcat + zillions jar, если вы используете Java EE, используйте хотя бы TomEE, если вы предпочитаете Spring, используйте tc Server.

Примечание: серверы приложений сейчас не тяжелые (см. Также: TomEE, wildfly).

РЕДАКТИРОВАТЬ:

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

С помощью EJB (аннотации @Webservice или @Path) веб-сервисов проще, вы можете работать с JMS, но его немного сложнее поддерживать и отслеживать, а также, возможно, вам нужно будет признать некоторых клиентов и вам нужно разобраться с унаследованным асинхронным JMS, идти с JMS только тогда, когда это необходимо.

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