Загружаются повторяющиеся конфигурации пружин?

Я смотрю на результат загрузки spring с помощью tomcat, и есть что-то очень странное ... Все дублируется. Что могло бы вызвать это? Как бы то ни было, это заставляет мое приложение работать странным образом.

Дополнительная информация:

Приложение представляет собой веб-приложение. Вся информация о Spring загружается с помощью загрузчика контекста (?), Определенного в файле web.xml. Мои файлы конфигурации разделены на 6 (или около того) файлов.

Пример вывода отладки:

[DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /**; attributes: [REQUIRES_SECURE_CHANNEL]

[DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /**; attributes: [REQUIRES_SECURE_CHANNEL]

[DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /**; attributes: [ROLE_READ, ROLE_UPDATE]

[DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /**; attributes: [ROLE_READ, ROLE_UPDATE]

[DEBUG,AbstractFallbackMethodDefinitionSource,main] Adding security method [CacheKey[com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo(com.model.Foo2,java.lang.String) throws org.springframework.dao.DataAccessException]] with attribute [[ROLE_UPDATE]]

[DEBUG,AbstractFallbackMethodDefinitionSource,main] Adding security method [CacheKey[com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo(com.model.Foo2,java.lang.String) throws org.springframework.dao.DataAccessException]] with attribute [[ROLE_UPDATE]]

[INFO,AbstractSecurityInterceptor,main] Validated configuration attributes

[INFO,AbstractSecurityInterceptor,main] Validated configuration attributes

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 687
4

Ответы 4

Вы уверены, что что-то в конфигурации ведения журнала не добавляет каждую категорию / средство ведения журнала в приложение более одного раза?

Это возможно с log4j, но не уверен насчет JCL или того, что последняя версия Tomcat использует под прикрытием.

Я бы сказал, что уверен на 95%. Учитывая, что каждый HTTP-запрос обрабатывается дважды, я полагаю, что spring "загружается дважды"

IaCoder 28.10.2008 23:07

Вы уверены, что на самом деле не получаете два HTTP-запроса? Что показывает журнал доступа Tomcat?

matt b 28.10.2008 23:27

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

MetroidFan2002 29.10.2008 00:52

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

Dov Wasserman 09.12.2008 08:28

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

Это могло бы объяснить, что здесь происходит, если я правильно все это помню.

Ответ и комментарии здесь, скорее всего, будут правильными.

Опубликуйте свою конфигурацию log4j как обновление / редактирование вашего вопроса, а затем я опубликую исправление как обновление / редактирование своего ответа.

Я столкнулся с той же проблемой с вами, и это была просто проблема конфигурации log4j, вот моя исходная конфигурация

<category name = "org.springframework">
    <level value = "INFO"></level>
    <appender-ref ref = "basicAppender" />
</category>

В этой конфигурации весь класс в пакете org.springframework будет регистрироваться один раз, и, поскольку я не установил для свойства аддитивности значение false, регистратор "org.springframework" будет регистрироваться снова, и в результате все журналы будут дублированы. Поэтому я просто установил для свойства аддитивность значение false, и оно работает. Что ж, это просто моя ситуация, пусть будет вам полезно.

Другие вопросы по теме