覆盖jar文件中的spring bean

时间:2012-03-21 22:45:49

标签: spring

我有一个包含所有域对象和服务类的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

1 个答案:

答案 0 :(得分:1)

在jar中使用spring配置文件会让事情变得更难管理。如果您已经注释了您的课程,那将更容易。

但无论如何,我建议将dao xml分为两部分 - 你的bean和基础设施相关的bean(比如数据源)。然后,您只能在app-context.xml中包含所需的那些。

另一种方法是在覆盖的bean上使用primary="true"。这意味着需要类型为DataSource的bean的所有注入点都会选择您的主bean。但如果您在dao xml中引用数据源,那将无效。

简而言之 - 您无法覆盖bean,因此请拆分您的xml文件并仅包含您需要的部分。