Как Spring вписывается в мою архитектуру приложения?

Я в настоящее время восстанавливаю существующее приложение PHP с помощью Java. У меня поэтому есть существующий frontend GUI и существующая схема базы данных, с которой я работаю.

Вот технологический стек, которого я работаю для:

  1. jQuery, клиентский
  2. Калитка, фронтенд
  3. Spring???
  4. Будьте в спящем режиме, ORM
  5. MySQL, база данных

Прежде, чем читать о Spring и в Калитке В Действии и в Быть в спящем режиме документации, я предположил проводное соединение двух вместе через мою логику собственного дела. У меня есть опыт со Швом JBoss, но сказан, что Spring едва сопоставим (хотя документация предлагает иначе, IMO). За исключением добавления книги о Spring к моему списку чтения (я еще не нашел соответствующий с хорошими обзорами), я в замешательстве.

Какое преимущество Spring предоставит в этом технологическом стеке?

Субъективный и дополнительный развивают вопрос: какой ссылочный материал (книга, веб-сайт, и т.д.) запустит меня с части Spring 3, который я могу использовать?

8
задан Dolph 7 July 2010 в 20:10
поделиться

4 ответа

Во-первых, вы можете создать свое веб-приложение без Spring. Но Spring значительно облегчит дело. Каркас Spring - легкий, неинвазивный. Весна похожа на своего рода проводник. Среди прочего Spring помогает вам:

  1. сохранять слабую связь между объектами. Это сделает ваше приложение более гибким и открытым для будущих изменений

  2. . Мощная поддержка транзакций через AOP (аспектно-ориентированное программирование).

  3. Модуль интеграции объектно-реляционного отображения (ORM). Spring не пытается реализовать собственное ORM-решение, но предоставляет перехватчики в несколько популярных ORM-фреймворков, включая Hibernate, Java Persistence API, Java Data Objects и iBATIS SQL Maps. Управление транзакциями Spring поддерживает каждую из этих структур ORM, а также JDBC.

  4. Среда Spring MVC. Несмотря на то, что Spring интегрируется с несколькими популярными фреймворками MVC, он также поставляется с собственной очень функциональной инфраструктурой MVC, которая продвигает слабосвязанные методы Spring на веб-уровне приложения.

Хорошая книга о весне: Pro Spring

2
ответ дан 5 December 2019 в 20:13
поделиться

В дополнение к инъекции зависимостей, Spring предлагает такие возможности, как декларативное управление транзакциями, простую интеграцию с ORM, поддержку аспектно-ориентированного программирования и многие другие приятные вещи.

Документацию по Spring см: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html

2
ответ дан 5 December 2019 в 20:13
поделиться

Spring, как отмечалось в этом обзоре, является неинвазивным. Он просто соединяет компоненты вашего приложения. И предоставляет полезные классы, которые облегчают использование других фреймворков (JMS, JPA и т.д.). Spring нигде не заставляет вас использовать свои классы или интерфейсы.

Что он делает, так это создает ваши компоненты (объекты), так что вы можете ссылаться на зависимости класса, не инстанцируя их. Т.е. вы говорите что нужно вашему классу, а не как он это получает. Это делает приложение очень гибким.

Это вкратце - чтобы узнать больше, прочтите статью по ссылке. Она не о последней версии, но это неважно.

2
ответ дан 5 December 2019 в 20:13
поделиться

@Dolph, в самом простом понимании, считайте, что Spring - это ваш фреймворк для приложений в высшей степени. Этот "фреймворк" предоставляет несколько "ведер компонентов", куда вы можете легко подключить различные типы реализаций. Например, для ORM вы можете выбрать Hibernate вместо JPA или TopLink, для front end вы можете выбрать Wicket вместо Struts или SpringMVC, и т.д.

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

Еще одна прелесть использования Spring заключается в том, что ваш код становится менее беспорядочным и имеет свободные зависимости с другими классами, потому что вы тратите меньше времени на создание новых объектов, Spring делает это за вас. При этом вы быстро поймете, как легко вам тестировать ваш код, потому что ваш тестируемый API становится очень атомарным. Это одна из основных причин, почему люди теряют мотивацию в написании тесткейсов, потому что они быстро понимают, что для того, чтобы протестировать один API, они должны создать целую кучу вещей только для того, чтобы протестировать его. Из-за этого весь процесс становится хрупким, представьте, что если вы измените этот API, вам придется все перестраивать, прежде чем тестировать его снова.

Книга Pro Spring хороша, ее упомянул @JLBarros. Мне очень нравится Spring in Action. Ее очень легко читать, когда я только начинал работать с Spring. Это, пожалуй, один из справочников, который я читаю от корки до корки.

2
ответ дан 5 December 2019 в 20:13
поделиться
Другие вопросы по тегам:

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