Java WAR - Załaduj fasolę Spring z zewnętrznego pliku JAR
Chciałbym załadować do mojej aplikacji internetowej Spring MVC (spakowanej jako WAR) niektóre komponenty Spring Framework z adnotacjami@Service
z zewnętrznego słoika, który jest odpowiedzialny za dostęp do bazy danych iznajduje się w ścieżce klasy w / WEB-INF / lib. Jeśli to możliwe, pożądane byłoby ich automatyczne załadowanie za pomocą@Autowired
adnotacja.
Z powodzeniem zastosowałem to rozwiązanielink1:
this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");
Jednak to rozwiązanie wykorzystuje funkcję Spring APIgetBean co jest uważane za złą praktykę (patrzlink2).
Próbowałem też, bez powodzenia, jeszcze dwóch rzeczy, aby załadować zewnętrzny applicationContext jar:
WAR's appContext.xml:
<import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
WAR's web xml -> załaduj plik jar aplikacji jak opisano tutaj (link3). (np. * applicationContext.xml):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:localSpringContext.xml
classpath:*applicationContext.xml
</param-value>
</context-param>
Jakie jest najlepsze podejście do prawidłowego załadowania tych ziaren i jak należy je wykonać?