Я хотел бы загрузить в свое веб-приложение Spring MVC (упакованное как WAR) некоторые компоненты инфраструктуры Spring, аннотированные с помощью @Service
из внешнего jar-файла, который отвечает за доступ к базе данных и расположен в путь к классам в / WEB-INF / lib. Если возможно, желательно загружать их автоматически с помощью аннотации @Autowired
.
Я успешно воспользовался решением в этом link1:
this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");
Однако это решение использует функцию Spring API getBean, что считается плохой практикой (см. link2).
Я также попробовал, но безуспешно, еще две вещи для загрузки applicationContext внешнего jar'а:
Файл appContext.xml WAR:
<import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
Веб-xml WAR -> загрузите appContext jar, как описано здесь (link3). (например, * applicationContext.xml):
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:localSpringContext.xml classpath:*applicationContext.xml </param-value> </context-param>
Как лучше всего правильно загрузить эти bean-компоненты и как это сделать?