我想在我的Spring MVC Web应用程序(打包为WAR)中加载一些Spring框架bean,其中注释了来自外部jar的@Service
,该jar负责访问数据库和位于/ WEB-INF/lib下的类路径中的。如果可能的话,最好使用@Autowired
注释自动加载它们。Java WAR - 从外部JAR加载Spring beans
我已经成功地遵循这个link1解决方案:
this.ctx = new ClassPathXmlApplicationContext("services-context.xml");
this.myAService = ctx.getBean("myAService");
然而,该解决方案使用了Spring API函数的getBean这被认为是不好的做法(见link2)。
我也试过,没有运气两件事加载外部jar's的applicationContext:
WAR's appContext.xml:
<import resource="classpath*:/WEB-INF/lib/pathToExternalJar/applicationContext.xml">
WAR's网站XML - >按照此处所述加载jar的appContext(link3)。 (例如*的applicationContext.xml):
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:localSpringContext.xml classpath:*applicationContext.xml </param-value> </context-param>
什么是正确和应该怎样做加载这些黄豆最好的方法呢?
正如我在这篇文章中评论的那样,我没有成功地使用这些方法。应该如何输入字符串作为资源(在WAR的appContext.xml方法中)看起来像(请提供示例)?谢谢。 – aloplop85
对不起,我错过了您的评论,请参阅最新的答案。 – Hippoom
那么,所需的路径确实是我的问题。我终于这样做了,感谢您的帮助:):** **因为XML直接位于JAR下(当前,不在任何包中,如com/gmail/hippoom )。所以 - > {classpath} =“”。现在使用该导入,我完全加载了外部applicationContext。再次感谢你的帮助。 –
aloplop85