Война платформ Java: Spring и в спящем режиме

Я попробовал это и его работу в Windows-машине для запуска sql-файла на определенной схеме.

psql -h localhost -p 5432 -U имя пользователя -d имя_базы_на_схема = schemaname & lt; e: \ Table.sql

28
задан magius 24 September 2008 в 09:13
поделиться

18 ответов

Я использовал Hibernate несколько раз в прошлом. Каждый раз, когда я сталкивался с крайними случаями, когда определение синтаксиса переходило к поиску мусора через документацию, Google и старые версии. Это мощный инструмент, но плохо документированный (последний раз я смотрел).

Что касается Spring, то почти каждая работа, с которой я брал интервью или рассматривал ее в последние несколько лет, касалась Spring, она действительно стала стандартом де-факто для Java / Web. Его использование поможет вашим разработчикам стать более конкурентоспособными в будущем, и это поможет вам, поскольку у вас будет большой круг людей, которые будут понимать ваше приложение.

Написание собственных рамок заманчиво, познавательно и весело. Не очень хорошо по результатам.

28
ответ дан Jim Ferrans 14 October 2019 в 09:21
поделиться

Рамки не злые. даже Java SDK - это фреймворк.

То, с чем они, вероятно, борются, - распространение структуры . Вы не должны приносить структуру в проект просто ради удовольствия, она должна приносить постоянную ценность в разумные сроки. Каждая структура требует кривой обучения, но должна наградить вас повышенной производительностью и возможностями в дальнейшем.

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

0
ответ дан Jim Ferrans 14 October 2019 в 09:21
поделиться

@slim - я снова с тобой сегодня утром.

Звучит как классический случай синдрома «Не изобретено здесь» . Если они не заинтересованы в весне, им следует рассмотреть другие варианты, а не переходить на собственные рамки (независимо от того, признают они это или нет). Guice приходит на ум как возможность. Также пикоконтейнер. Есть и другие, в зависимости от того, что вам нужно.

0
ответ дан Stu Thompson 14 October 2019 в 09:21
поделиться

Я должен согласиться со многими сообщениями на этом. Я использовал обоих, экстенсивно, во множестве настроек. Если бы я мог бы отменить проектное решение, оно должно было бы использовать, в спящем режиме. Мы на самом деле планировали выпуск в одном из наших продуктов для свопинга, в спящем режиме для iBatis и Spring-JDBC для подхода best-of-all-worlds. Я могу сделать, чтобы новый разработчик вошел в курс дела с помощью Spring-JDBC, Spring-MVC, МОК Spring и iBatis быстрее, чем если бы я просто определил задачу для них с, в спящем режиме.

В спящем режиме, является просто слишком сложным для этого разработчика KISS. И небеса помогают, Вы с в спящем режиме, если Ваш DBA видит сгенерированный SQL, база данных видит и передает Вас обратно с оптимизированными версиями.

1
ответ дан Jim Ferrans 14 October 2019 в 09:21
поделиться

Spring и В спящем режиме, определенно делают жизнь легче. Начало работы с ними могло бы быть немного трудоемким вначале, но Вы, конечно, извлечете выгоду из него позже. Теперь XML заменяется аннотациями, Вы не должны вводить сотни строк XML также.

можно хотеть полагать AppFuse уменьшать кривую обучения: генерируйте приложение, учитесь и адаптируйтесь, оно, и от Вас идет.

0
ответ дан NR. 14 October 2019 в 09:21
поделиться

По моему мнению, самое большое преимущество Spring заключается в том, что он поощряет и обеспечивает лучшие методы разработки, в частности слабую связь, тестирование и большее количество интерфейсов. Спящий режим без весны может быть очень болезненным, но оба вместе очень полезны.

Модернизация существующего проекта к любой структуре будет болезненной, но процесс рефакторинга часто имеет серьезные преимущества для долгосрочной ремонтопригодности.

1
ответ дан Mojo 14 October 2019 в 09:21
поделиться

Что касается Будьте в спящем режиме: очень хороший инструмент для приложения, которое имеет дело с быстро изменяющейся схемой базы данных, большой суммой таблиц, делает много простых операций CRUD. Отчеты с включенными сложными запросами скорее менее хорошо обрабатываются. Но в них случаются, я предпочитаю смешиваться в JDBC или собственных запросах. Так, для короткого ответа: Я действительно думаю, что потраченное изучение времени В спящем режиме, хорошие инвестиции (они говорят, что это совместимо с EJB3.0 и стандартами JPA, также, но это не входило в уравнение, когда я оценил его для своего персонального использования).

Что касается Spring... см. Блог Желчи:)

Помните: платформы не серебряные пули , но Вы не должны перестраивать колесо также.

2
ответ дан Manrico Corazzi 14 October 2019 в 09:21
поделиться

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

преимущества платформ должен в основном попытаться обеспечить платформу, чтобы позволить, чтобы последовательные коды были продуктами. На основе опыта Вам было бы целесообразно испытать разработчиков с платформами, устанавливающими на месте лучшие практики.

В зависимости от дизайна Вашего приложения и/или базы данных, существуют также причуды, которые необходимо будет обойти, чтобы гарантировать, чтобы платформы не препятствовали производительности.

1
ответ дан aewyn 14 October 2019 в 09:21
поделиться

Я всегда находил Hibernate немного сложным и трудным для изучения. Но так как JPA (Java Persistence API) и EJB (Enterprise Java Beans) 3.0 уже некоторое время стали намного проще, я предпочитаю комментировать свои классы для создания отображений с помощью JavaDoc или XML. Проверьте поддержку в Hibernate . Дополнительным бонусом является то, что можно (но не без усилий) изменить структуру базы данных позже, если это необходимо. Я использовал OpenJPA с отличными результатами.

В последнее время я все больше и больше использую JCR (Java Content Repository). Мне нравится, как мои модули могут совместно использовать одно хранилище данных и что я могу позволить структуре и свойствам развиваться. Мне гораздо проще работать с узлами и свойствами, чем сопоставлять мои объекты с базой данных. Хорошей реализацией является Jackrabbit .

Что касается Spring, он имеет много функций, которые мне нравятся, но количество XML, необходимое для настройки, означает, что я никогда не буду его использовать. Вместо этого я использую Guice и очень люблю его.

В заключение я бы показал вашим сомневающимся разработчикам, как Hibernate облегчит их жизнь. Что касается Spring, я бы серьезно проверил, является ли Guice жизнеспособной альтернативой, а затем попытался бы показать, как Spring / Guice делает разработку лучше и проще.

5
ответ дан Andreas Holstenson 14 October 2019 в 09:21
поделиться

Я нахожу, что это действительно помогает использовать известные платформы те, которые В спящем режиме, потому что это вмещает Ваш код в определенную форму или образ мыслей. Значение, так как Вы используете, в спящем режиме, Вы пишете коду определенный путь и большинство, если не все разработчики, которые знают, Будут в спящем режиме, то будет в состоянии следовать за Вашим ходом мыслей довольно легко.

существует оборотная сторона к этому, конечно. Прежде чем Вы станете горячим выстрелом, в спящем режиме разработчик, Вы собираетесь найти, что Вы пытаетесь вместить квадрат в круговую дыру. Вы ЗНАЕТЕ то, что Вы хотите сделать, и как Вы, как предполагалось, сделали это, прежде чем Будут в спящем режиме, вошел в изображение, но нахождение Быть в спящем режиме способа сделать его может занять... довольно мало времени.

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

Туз /

1
ответ дан Ace 14 October 2019 в 09:21
поделиться

Это - одна вещь (я мог помнить), что я упал в то, когда я был в моем Быть в спящем режиме дни. То, когда Вы удалите (несколько) дочерние объекты из набора (в родительском объекте) и затем добавляете новые объекты к тому же набору в одной транзакции, не сбрасывая в середине, В спящем режиме, сделает, "вставляют", прежде "удаляют". Если бы дочерняя таблица имеет ограничение на уникальность данных в одном из его столбцов, и Вы ожидаете, что не нарушили бы его, так как Вы уже удалили некоторые данные прежде (точно так же, как я был), то подготовьтесь быть расстроенными. Будьте в спящем режиме форум предлагает:

  1. Это был недостаток дизайна DB, модернизация;
  2. сброс (или фиксация, если Вы будете) промежуточный удаление и вставляет;

я не мог сделать обоих и закончить тем, что настроил Быть в спящем режиме источник и перекомпилировал. Это была только 1 строка кода. Но усилие найти, что одна строка была равна приблизительно 27 чашкам кофе и 3 бессонных ночи.

Это - всего один пример проблем и причуд, Вы могли бы закончить, когда использование В спящем режиме без настоящего эксперта по Вашей команде (эксперт: кто-то с соответствующим знанием о философии и внутренней работе В спящем режиме). Ваша проблема, решение, литр кофе и бессонное ночное количество могут варьироваться. Но Вы получаете идею.

7
ответ дан Jim Ferrans 14 October 2019 в 09:21
поделиться

Они осудили рамки ?

Это безумие. Если вы не используете готовый фреймворк, вы создаете свой собственный. Это все еще рамки.

39
ответ дан slim 14 October 2019 в 09:21
поделиться

Будьте в спящем режиме имеет причуды, чтобы быть уверенным, но это вызвано тем, что проблема, которую это пытается решить, сложна. Каждый раз кто-то жалуется на, в спящем режиме, я напоминаю им обо всем скучном коде ДАО, что они должны были бы поддержать, если бы они не использовали его.

Несколько подсказок:

  • В спящем режиме, не никакая замена для хорошего проектирования баз данных. Будьте в спящем режиме схемы в порядке, но необходимо будет иногда настраивать их
  • В конечном счете, Вы оказываетесь перед необходимостью понимать, как В спящем режиме ленивые классы загрузок и как это влияет на вещи. Будьте в спящем режиме изменяет Байт-код Java, и необходимо будет копаться в глубинах рано или поздно, если только объяснить, почему объектные ссылки являются пустыми.
  • аннотации Использования, если Вы можете.
  • Занимают время для изучения Быть в спящем режиме настраивающих методов производительности, это сохранит Вас в конечном счете.
16
ответ дан Peter Kelley 14 October 2019 в 09:21
поделиться

Если у вас довольно сложная база данных, Hibernate не для вас. На работе у нас довольно сложная база данных с большим количеством данных, и Hibernate на самом деле не работает для нас. Вместо этого мы начали использовать iBATIS. Тем не менее, я знаю много магазинов разработчиков, которые успешно используют Hibernate - и он делает для вас много тяжелой работы - так что стоит подумать.

Spring - хороший инструмент, если вы знаете, как правильно его использовать.

Я бы сказал, что фреймворки - это, безусловно, хорошая вещь - как уже отмечали другие, вы не хотите изобретать велосипед. Spring содержит много модулей, которые означают, что вам не придется писать так много кода. Не поддавайтесь синдрому «Не изобретено здесь»!

7
ответ дан 14 October 2019 в 09:21
поделиться

Я сделал большую разработку Spring/Быть в спящем режиме. Со временем способ, которым люди использовали обоих в комбинации, изменился немного. Исходный подход HibernateTemplate оказался трудным отладить, так как он глотает и обертывает в других отношениях полезные исключения; говорите с API Hiberante непосредственно!

продолжайте смотреть на сгенерированный SQL (настройте свою разработку, регистрирующуюся для показа SQL). Наличие уровня абстракции к базе данных не означает, что Вы не должны больше думать в SQL; Вы не получите хорошую производительность если Вы иначе.

Рассматривают проект. У меня есть choosen iBatis, несколько раз В спящем режиме, где у нас были строгие требования к производительности, сложные схемы прежней версии или хороший DBa's, способный к записи превосходного SQL.

3
ответ дан p3t0r 14 October 2019 в 09:21
поделиться

Я не работал очень с Java, но я действительно работал в больших группах Java-разработчиков. Впечатление, которое я имею, было то, что Spring в порядке. Но все были расстроены в, в спящем режиме. Половина команды, если спросили, "Если бы Вы могли бы изменить одну вещь, что Вы изменили бы?" и они сказали бы, "Избавляются от, в спящем режиме".. Когда я начал учиться, в спящем режиме, это ударило меня в удивительно комплексе, но я не изучил достаточно (к счастью, я прошел) знать, была ли сложность выровнена по ширине или не (возможно, это было, требуют для решения некоторых сложных проблем).

команда избавилась от Spring в пользу Guice, но это больше было похоже на политические изменения, по крайней мере, с моей точки зрения и других разработчиков, с которыми я говорил.

5
ответ дан pupeno 14 October 2019 в 09:21
поделиться

Ленивая загрузка является большим глюком в приложениях MVC, что использование В спящем режиме для их платформы персистентности. Вы загружаете объект в контроллере и передаете его представлению JSP. Некоторые или все члены класса проксируются, и все аварийно завершается, потому что Вы В спящем режиме, сеанс был закрыт когда завершенный контроллер.

необходимо будет читать Открытое заседание в поле зрения статья, чтобы понять проблему и получить решение. При использовании Spring этот , статья блога описывает решение для Spring открытого заседания, в поле зрения выходят.

7
ответ дан Brian Matthews 14 October 2019 в 09:21
поделиться

В верхнем ответе упоминается, что Hibernate плохо документирован. Я согласен с тем, что интерактивное справочное руководство могло бы быть более полным. Тем не менее, книга, написанная авторами Hibernate, « Сохранение Java с Hibernate » является обязательной к прочтению для каждого пользователя Hibernate и очень полной.

1
ответ дан 20 November 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: