Я использую org.springframework.web.servlet.DispatcherServlet
и org.springframework.ws.transport.http.MessageDispatcherServlet
в том же приложении, но каждый загружает собственный контекст приложения, я должен загрузить все бобы в единственном контексте приложения.
Приложение состоит из типичной сети слоев> приложение> дао и т.д.
То, что я попробовал, должно использовать один сингл spring-root-context.xml
путем установки его в contextConfigLocation
.
Но не помог, это было проблемой для меня в течение долгого времени, я ценил бы любую справку с этим.
Любые ссылки онлайн были бы большой справкой.
Здесь вам понадобится ContextLoaderListener
.Это ServletContextListener
, который создает корневой WebApplicationContext
, который используется всеми сервлетами в этом веб-приложении.
Ваши DispatcherServlet
и MessageDispatcherServlet
по-прежнему будут создавать свои собственные контексты, но каждый из них будет иметь корневой контекст в качестве родительского, поэтому они оба смогут использовать компоненты, определенные в этом корневой контекст, такой как DAO и т. д. Некоторые bean-компоненты должны оставаться в собственных контекстах сервлетов, таких как контроллеры, преобразователи представлений, конечные точки SOAP и т. д., но общие общие bean-компоненты могут находиться в корне.
Пример настройки см. В документации Spring .