Java WAR - Laden Sie Spring Beans aus einer externen JAR
Ich möchte in meine Spring MVC-Webanwendung (verpackt als WAR) einige Spring Framework-Beans laden, die mit Anmerkungen versehen sind@Service
aus einem externen Glas, das für den Zugriff auf eine Datenbank zuständig ist, undbefindet sich im Klassenpfad unter / WEB-INF / lib. Wenn möglich, wäre es wünschenswert, diese automatisch mit dem zu laden@Autowired
Anmerkung.
Ich habe die Lösung in diesem erfolgreich verfolgtlink1:
this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");
Diese Lösung verwendet jedoch die Spring-API-FunktiongetBean was als schlechte Praxis angesehen wird (vgllink2).
Ich habe auch ohne Glück zwei weitere Dinge versucht, um die Anwendung des externen Glases zu laden.
WAR´s appContext.xml:
<import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
WAR´s web xml -> lade den jar´s appContext wie hier beschrieben (link3). (z. B. * applicationContext.xml):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:localSpringContext.xml
classpath:*applicationContext.xml
</param-value>
</context-param>
Was ist der beste Ansatz, um diese Bohnen richtig zu laden und wie sollte es gemacht werden?