javax.enterprise.context.SessionScoped
( JSR 346 ), а все остальные аннотации в пакете javax.enterprise.context.*
поддерживают контекст CDI . CDI предоставляет альтернативный, универсальный и более мощный механизм для инъекций зависимостей, управления компонентами и общим ресурсом в пространстве Java EE. Это альтернатива управляемым bean-компонентам JSF, и она настроена на то, чтобы даже заменить механизм управления компонентом JSF в будущей версии JSF . В настоящее время JSF и CDI аннотированные бобы взаимозаменяемы в любом данном веб-приложении Java EE (с учетом нескольких незначительных ограничений). CDI-аннотированные бобы, однако, простираются далеко за пределы области веб-уровня, поэтому спецификация Java EE развивается, чтобы сделать CDI стандартным компонентом и механизмом DI. Хотя CDI может быть очевидным выбором для всей разработки Java EE, управляемые bean-компоненты JSF переносимы в контейнерах сервлетов (Tomcat) и серверах приложений (Glassfish, JBoss и т. Д.). Компоненты CDI могут работать только с полными серверами приложений. Однако с помощью некоторые работы Tomcat 7 могут быть подключены для поддержки CDI. В частности, javax.enterprise.context.SessionScoped
представляет собой параллельную реализацию Сессии сеанса JSF в CDI. javax.faces.bean.SessionScoped
( JSR 314 ), а все остальные аннотации в пакете javax.faces.bean.*
поддерживают JSF-специфический механизм вливания и механизм управления бобами. Бобы, аннотированные аннотациями JSF, однако полезны только в веб-уровне. Все области, доступные с аннотациями JSF, были реплицированы в спецификации CDI. javax.annotation.ManagedBean
( JSR 316 ) и другие связанные с DI аннотации в javax.annotation.*
являются попыткой обобщить аннотации на основе JSF для других применений в спецификации Java EE и действительно не должны использоваться конечным разработчиком. Почему они существуют? Ну, ИМО, переход от фасоли JSF к компонентам CDI - это естественная эволюция технологии. Бобы JSF отлично справились, но Spring, Guice и Seam сделали очевидным, что технологии недостаточно. Необходимо также устранить разрыв между веб-компонентами и EJB, и ответ на эту потребность - это CDI.
См. также следующие связанные вопросы:
Приложение Spring Boot можно настроить, добавив определение компонента для включения ведения журнала запросов:
@Configuration
public class RequestLoggingFilterConfig {
@Bean
public CommonsRequestLoggingFilter logFilter() {
CommonsRequestLoggingFilter filter
= new CommonsRequestLoggingFilter();
filter.setIncludeQueryString(true);
filter.setIncludePayload(true);
filter.setMaxPayloadLength(10000);
filter.setIncludeHeaders(false);
filter.setAfterMessagePrefix("REQUEST DATA : ");
return filter;
}
}
Кроме того, этот фильтр ведения журнала требует, чтобы уровень журнала был установлен на DEBUG
<logger name="org.springframework.web.filter.CommonsRequestLoggingFilter">
<level value="DEBUG" />
</logger>