Wczytywanie konfiguracji springa gdy jest dostępna

0

Witam.

Załóżmy kilku modułowy projekt spring budowany mavenem. Istnieje 1 moduł web który w zależnościach ma 3 moduły z zdefiniowanymi kontrolerami. W konfiguracji springowej web mógłbym dodać.

<import resource="classpath:/spring/module-a-config.xml" />
<import resource="classpath:/spring/module-b-config.xml" />
<import resource="classpath:/spring/module-c-config.xml" />

Do tego chciałbym stworzyć profil dla którego nie byłyby dołączone moduły b i c. Przy takiej konfiguracji, w trakcie deployu rzuci błedem o niemożności znalezienia plików module-b-config.xml oraz module-c-config.xml . Czy jest opcja aby zrobić import z "required=false" lub coś funkcjonalnie identycznego?

1
  • Spring Dynamic Modules nie do końca to, ale pozwala budować architekturę pluginów.
  • Masz zły design ponieważ web powinien być niezależny od backendu. Każdy moduł serwerowy powinien rejestrować się w jakimś serwisie w module web i instalować się jako plugin.
0

Poczytam o Spring Dynamic Modules w wolnym czasie. Dzięki za informacje.
A czy mógłbyś (lub ktokolwiek inny) zaproponować mi architekturę projektu wielo modułowego, gdzie jest jeden moduł główny od którego zależą inne, opcjonalne. Te opcjonalne nie mogą być zależne od siebie. Każdy z takich modułów, wliczając główny powinien być podzielony na 3 standardowe warstwy. Wszystkie moduły powinny używać tej samej konfiguracji hibernate, tak aby był tylko 1 session factory i nie było potrzeby używania transakcji rozproszonych. A to wszystko bez użycia webserviców. Po moich poszukiwaniach w internecie nic takiego nie znalazłem. Albo zawsze z jakąś szyną która strasznie zwalnia system, albo przykład jak zrobić 3 modułowy projekt w maven z parentem. Gdybyście mieli jakiś namiar to byłbym bardzo wdzięczny :).

1

A na przykład OSGi?

0

OSGi to chyba zbyt dużo.
Może opiszę co chciałbym uzyskać.

  • Finalnie mają działać wszystkie moduły, startowane od samego początku i nie usuwane w trakcie działania.
  • Możliwość zbudowania aplikacji tak aby deployować tylko 1 moduł nad którym obecnie pracuję.
  • Posiadanie pewności że moduł będzie zależał tylko od modułu głównego i nikt przez przypadek nie połączy go z innym.

PS. Projekt do szuflady.

1

Jak do szuflady to OSGi/Sprign DM (czyli OSGi od springa pod inną nazwą by nie płacić za prawa autorskie czy coś w ten deseń), o zawsze się czegoś nowego nauczysz.

2

A może java 9 i jigsaw? Ale nie wiem czy jest już dobrze działająca wersja ;-)

1

U nas robimy to trochę inaczej.... mówimy springowi aby wczytywał wszystkie pliki konfiguracji ze wszystkich modułów classpath*:spring/*-context.xml i teraz to ty decydujesz jakie moduły masz na classpath.

0

Ok. W takim razie sprawdzę opcję Szczerego i Spring DM. Dzięki za pomoc :).
@Shalom, zbyt ekstremalne rozwiązanie ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1