Функциональность дублирования приложения Spring из-за ApplicationContext

У меня есть приложение Spring с интеграцией Hibernate, развернутое на сервере JBoss локально. Я настроил приложение, используя аннотации и класс Config.java для конфигураций Spring и Hibernate.

Я получаю это предупреждение в своих журналах:

17:13:18,153 WARN spi.TypeConfiguration$Scope:273 - HHH000233: Scoping types to session factory org.hibernate.internal.SessionFactoryImpl@4945417e after already scoped org.hibernate.internal.SessionFactoryImpl@4945417e

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

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
    ...
}

Вместо этого я пробовал использовать

@Autowired
private ApplicationContext context;

в классе, но это нарушает мое приложение.

Немного более подробное ведение журнала:

17:57:35,211 DEBUG internal.SessionFactoryImpl:292 - Instantiated session factory

17:57:35,211 DEBUG spi.TypeConfiguration:146 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@42990ff8] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@494db1a3]

17:57:35,211 DEBUG spi.TypeConfiguration:148 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@42990ff8] to SessionFactory [org.hibernate.internal.SessionFactoryImpl@494db1a3]

17:57:35,211 WARN spi.TypeConfiguration$Scope:273 - HHH000233: Scoping types to session factory org.hibernate.internal.SessionFactoryImpl@494db1a3 after already scoped org.hibernate.internal.SessionFactoryImpl@494db1a3

17:57:35,225 TRACE internal.AbstractServiceRegistryImpl:228 - Initializing service [role=org.hibernate.persister.spi.PersisterFactory]

17:57:35,227 TRACE internal.AbstractServiceRegistryImpl:228 - Initializing service [role=org.hibernate.persister.spi.PersisterClassResolver]

Все это приводит к тому, что все мои транзакции происходят дважды, как в моих классах, так и в моей базе данных. У кого-нибудь есть идеи?

Я чувствую, что это может быть связано с использованием аннотации Controller / RestController для создания вашей конечной точки. Не рекомендуется создавать собственные классы сервлетов в приложении Spring MVC.

Prakash Ayappan 10.06.2018 05:30

Это приложение не настроено как проект Spring MVC. На данный момент я использую Spring для интеграции с Hibermate. @PrakashAyappan

vandy 10.06.2018 05:32

Надеюсь, это должно быть в Spring MVC для веб-приложения Spring. Я что-то упустил в понимании вашей проблемы !!!

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

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