我有一个包含所有域对象和服务类的dao jar文件。它有一个dao-resource.xml
配置文件id=datasource
。
我在另一个有自己的app-context.xml
的项目中使用这个jar文件,但是我想在jar文件中用id="datasource"
覆盖bean
我该怎么做我尝试在app-context.xml
中添加具有相同ID的bean,并将这两个文件添加到classpathxmlapplicat ....首先dao-resource.xml
然后app-context.xml
但这似乎不起作用。
我怎么能覆盖一个bean
答案 0 :(得分:1)
在jar中使用spring配置文件会让事情变得更难管理。如果您已经注释了您的课程,那将更容易。
但无论如何,我建议将dao xml分为两部分 - 你的bean和基础设施相关的bean(比如数据源)。然后,您只能在app-context.xml中包含所需的那些。
另一种方法是在覆盖的bean上使用primary="true"
。这意味着需要类型为DataSource
的bean的所有注入点都会选择您的主bean。但如果您在dao xml中引用数据源,那将无效。
简而言之 - 您无法覆盖bean,因此请拆分您的xml文件并仅包含您需要的部分。