/ / Spring MVC w projekcie modułu maven - java, wiosna, hibernacja, maven, spring-mvc

Spring MVC w projekcie modułu multi maven - java, spring, hibernate, maven, spring-mvc

Projektuję i wdrażam aplikację webową Java za pomocą Spring, Spring MVC i Maven. Moim celem jest stworzenie trzech modułów:

  • moduł danych zawierający jednostki i DAO
  • moduł usługi zawierający logikę biznesową i klasy @Service
  • moduł WWW zawierający pliki jsp i klasy @Controller

Komunikacja między modułem usług a modułem danych działa doskonale. Moduł serwisowy zależy od modułu danych i zawiera moduł danych z <import resource="dataApplicationContext.xml"/> w serviceApplicatioContext.xml. Przetestowałem go za pomocą statycznej klasy głównej i niektórych testów integracyjnych.

Problem, który mam, polega na uzależnieniu modułu WWW od modułu usługi. Jak zrobić, aby mój plik mvc-dispatcher-servlet.xml zaimportował mój plik serviceApplicatioContext.xml?

Rozwiązanie, które próbowałem dotychczas: 1) Jeśli tylko użyję <import resource="/serviceApplicationContext.xml"/> następnie Spring MVC szukałby /WEB-INF/serviceApplicationContext.xml, który oczywiście nie istnieje.

2) Jeśli wymieniam <context:component-scan base-package="my.project.controller" /> z <context:component-scan base-package="my.project" /> następnie Spring nie uruchamia się i nie jest tworzona sesja hibernacji.

Wielkie dzięki, Alex

Odpowiedzi:

2 dla odpowiedzi № 1

Wiosna ma swoje ładowanie zasobów mechanizm i każde wdrożenie ApplicationContext ma swoją własną domyślną lokalizację zasobów. The ClassPathXmlApplicationContext domyślnie ładuje się ze ścieżki klasy, podczas gdy XmlWebApplicationContext ładuje z katalogu głównego aplikacji internetowej.

Możesz określić na każdym zasobie, od którego miejsca go załadować, poprzedzając go. classpath: prowadzi do ciągłego ładowania z ścieżki klasy, file: z systemu plików itp.

W skrócie po prostu dodaj classpath: do nazwy zasobów do zaimportowania, aby wymusić, że ten plik jest zawsze ładowany ze ścieżki klasy.

<import resource="classpath:serviceApplicationContext.xml" />