Комментарии 7
А зачем это всё, если уже изобрели Spring Boot?
Spring Boot — замечательный продукт, но с его высоким уровнем абстракции, который, по сути, и является его преимуществом, он заточен либо под helloword, либо под хорошего специалиста: на это обычно указывают при работе с ним — для тривиальных настроек он обеспечивает набор АПИ, а шаг в сторону — приходится углубляться в дебри кода или использовать уже знакомые методики.
Кроме этого, как было подмечено, это скорее мануал для новичков: на своем примере показал полную смену конфигурации с xml на нативную в разрезе веб-проекта. А продолжать использовать xml, частично использовать java config или полностью, или использовать Spring Boot — это каждый решает для себя сам.
Общаясь с программистами, скажем так, невысокого уровня, могу сказать, что быстрый переход с xml-конфигурации на String Boot — это сильнейший разрыв шаблона: только на основе того, что в файл проекта подключены библиотеки, скажем, Hibernate'a или Jetty, те уже начинают использоваться проектом. Это очень необычно для Java проектов, где обычно каждый шорох надо описать, задекларировать или сконфигурировать.
Кроме этого, как было подмечено, это скорее мануал для новичков: на своем примере показал полную смену конфигурации с xml на нативную в разрезе веб-проекта. А продолжать использовать xml, частично использовать java config или полностью, или использовать Spring Boot — это каждый решает для себя сам.
Общаясь с программистами, скажем так, невысокого уровня, могу сказать, что быстрый переход с xml-конфигурации на String Boot — это сильнейший разрыв шаблона: только на основе того, что в файл проекта подключены библиотеки, скажем, Hibernate'a или Jetty, те уже начинают использоваться проектом. Это очень необычно для Java проектов, где обычно каждый шорох надо описать, задекларировать или сконфигурировать.
Spring Boot делает ровным счётом то же самое, что вы описали в статье, но при этом позволяет использовать конфигурацию «по умолчанию» до тех пор, пока не требуется шаг в сторону. Как только возникает необходимость сделать шаг в сторону — достаточно в явном виде сконфигурировать только этот самый шаг и ничего больше.
В обоих случаях — и у вас, и в Spring Boot, декларируется «opinionated» подход: «конфигурация — вот такая, и это — данность», но разница заключается в том, что Spring Boot — это огромное комьюнити с документацией, туториалами, статьями, примерами и видео на YouTube, а в вашем случае — эксклюзивный вариант конфигурации Spring «под себя» — с лично вашей мотивацией, вашими ценностями, и пониманием что хорошо, а что плохо.
В обоих случаях — и у вас, и в Spring Boot, декларируется «opinionated» подход: «конфигурация — вот такая, и это — данность», но разница заключается в том, что Spring Boot — это огромное комьюнити с документацией, туториалами, статьями, примерами и видео на YouTube, а в вашем случае — эксклюзивный вариант конфигурации Spring «под себя» — с лично вашей мотивацией, вашими ценностями, и пониманием что хорошо, а что плохо.
Непонятно, за что автора заминусовали. Нормальная статья начального уровня.
если бы я минусил статью, то наверное из-за этого (учитывая, что это How-to):
0) изменение структуры каталогов в pom.xml
1) нет исходников целикового проекта для «пощупать»
2) слишком много текста без разбивки на разделы
3) мешанина из «избавляется от XML» и «вкорячиваем внедрённый web-сервер» — можно было бы вкорячить его и после того, как избавились от XML
4) нет отсыла на другие хабра-статьи по аналогичной теме. Например на эту
5) обучение «плохому» в виде смешения properties, вместо того, чтобы просто задействовать Log4jConfigListener
6) использование смешанных настроек — часть в properties-файлах, а часть «зашито» в код. Причём настроек «одного класса»
7) местами даны аналоги XML и Java конфигурации, а местами нет
8) про назначение SecurityWebInitilizer как-то как бы и сказано, но лучше бы уж не говорилось, т.к. это не единственное его предназначение
ЗЫ: поправил чуть карму, всё таки первая статья у ТС
0) изменение структуры каталогов в pom.xml
1) нет исходников целикового проекта для «пощупать»
2) слишком много текста без разбивки на разделы
3) мешанина из «избавляется от XML» и «вкорячиваем внедрённый web-сервер» — можно было бы вкорячить его и после того, как избавились от XML
4) нет отсыла на другие хабра-статьи по аналогичной теме. Например на эту
5) обучение «плохому» в виде смешения properties, вместо того, чтобы просто задействовать Log4jConfigListener
6) использование смешанных настроек — часть в properties-файлах, а часть «зашито» в код. Причём настроек «одного класса»
7) местами даны аналоги XML и Java конфигурации, а местами нет
8) про назначение SecurityWebInitilizer как-то как бы и сказано, но лучше бы уж не говорилось, т.к. это не единственное его предназначение
ЗЫ: поправил чуть карму, всё таки первая статья у ТС
Спасибо. Согласен. Желание написать статью появилось, но делать это «с чистого листа» — нет ))), поэтому и вся отсебятина. Однозначно правильней было бы сделать тестовый проект, а не адаптировать свой для публикации.
Кстати, не первая. Писал пару лет назад про кастомизацию Spring Security под авторизацию через соцсети, но после был отхабрен и статья загадочным образом исчезла (((
Кстати, не первая. Писал пару лет назад про кастомизацию Spring Security под авторизацию через соцсети, но после был отхабрен и статья загадочным образом исчезла (((
Поправочка: persistence.xml описывает лишь контекст, а меппинги сущностей делаются в orm.xml.
Как уже заметили, Spring Boot предлагает уже готовые связки с авто конфигурацией контекста, хотя усложняет в 10 раз что-либо изменить или добавить. Если же нужно в продакшне деплоить на сервер, то лучше использовать именно Stand-alone Jetty+Spring.
Как уже заметили, Spring Boot предлагает уже готовые связки с авто конфигурацией контекста, хотя усложняет в 10 раз что-либо изменить или добавить. Если же нужно в продакшне деплоить на сервер, то лучше использовать именно Stand-alone Jetty+Spring.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Java-based конфигурирование embedded Jetty/Spring MVC/Spring Security