Я работаю над проектом Spring MVC и пытаюсь интегрировать Apache Shiro для обеспечения безопасности. Все шло как по маслу, пока я не понял, что Hibernate преждевременно закрывает сеанс/соединение после одного запроса и вызывает исключение lazyinit. Неудивительно, что то, что я делал, должно быть сделано внутри транзакции, чтобы сеанс не был закрыт.
Дилеммы…
Я попытался поместить @Transactional в свой метод контроллера, но тогда я получаю 404. Глядя на свои журналы, я вижу, что при начальной загрузке Spring игнорирует любые сопоставления в моем HomeController, если эта аннотация @Transactional находится в любом методе внутри контроллера.
Без @Transactional он загружается просто отлично, и я вижу, что bean-компонент RequestMappingHandlerMapping видит все аннотации @RequestMapping в моем контроллере.
С @Transactional, но без DefaultAdvisorAutoProxyCreator, и это работает, за исключением того, что аннотации Широ просто игнорируются.
tldr: Широ требует DefaultAdvisorAutoProxyCreator, но если я создам этот компонент, Spring перестанет работать при использовании аннотации @Transactional.
Я прошу о помощи, потому что я совершенно не понимаю, как действовать в этот момент.