Spring Boot: определение того, какая автоконфигурация применяется к джерси?

Следуя онлайн-документам по добавлению трикотажа в загрузку Sring, похоже, мне просто нужно включить следующий пакет

spring-boot-starter-jersey

На самом деле в нем говорится, что Spring Boot обеспечивает автоматическую настройку, включая этот пакет.

Где я могу узнать, что именно происходит?

Если я не добавлю этот пакет, то что НЕ настроено?

Я попытался найти пакет в google, но не получил конкретного объяснения, а только сказал, что он автоматически настраивается, но настраивает что?

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


person Martin    schedule 08.06.2017    source источник


Ответы (2)


arrow_upward
1
arrow_downward

Я бы порекомендовал узнать немного больше о том, как работает Spring Boot, чтобы обеспечить автоматическую настройку в целом.

Хорошим справочником является справочное руководство по весенней загрузке. http://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#common-application-properties

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

Справочное руководство также дает высокий уровень того, что такое «весна-загрузка-стартер-трикотаж», если вы ищете его на странице.

У них также есть несколько примеров, которые вы можете просмотреть и отладить, чтобы следовать им, если вы хотите учиться.

Надеюсь, это даст вам отправную точку для обучения!

person Chad    schedule 08.06.2017

arrow_upward
2
arrow_downward

Весь код автоматической настройки для всех, который поддерживает Spring Boot, находится в spring-boot-autoconfigure. Если вы просмотрите пакеты, вы увидите пакет из трикотажа.

«Стартовые» модули обычно не имеют никакого кода (конечно, если это не сторонний модуль). Как это работает, так это то, что код в автоконфигурации имеет некоторые аннотации, которые являются @ConditionalOnXxx, где условие может быть любым из класса, находящегося в пути к классам. Если этот класс недоступен, то автоконфигурация не произойдет. Это почти все, что делает добавление стартового модуля трикотажа: он добавляет трикотажные зависимости, чтобы применялся автоконфигуратор.

Что именно автоматически настраивается специально для Джерси? Ознакомьтесь с исходным кодом JerseyAutoConfiguration. По сути, вы увидите, что ваш ResourceConfig внедряется в конфигуратор. Из этого ResourceConfig создается ServletContainer Джерси (который является основной точкой входа для Джерси.

Затем, в зависимости от нашей конфигурации свойств, либо FilterRegistrationBean, либо ServletRegistrationBean создается как bean-компонент Spring, обертывающий ServletContainer Джерси. Джерси может быть создан как сервлет или фильтр сервлета. Какой бы из них мы ни настроили, мы будем использоваться.

И это все для конфигурации Джерси. Spring Boot получит контейнер сервлета (например, Tomcat, Jetty) из какой-либо другой автоматической конфигурации, возьмет Filter/ServletRegistrationBean и добавит Servlet/Filter в этот контейнер сервлета.

Кроме того, это не так важно, но автоматическая настройка также дает нам несколько помощников по настройке Джексона. Например, вместо настройки нашего собственного ContextResolver мы можем просто настроить bean-компонент ObjectMapper Spring.

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

person Paul Samsotha    schedule 09.06.2017