2012-03-21 79 views
0

我有一个包含所有域对象和服务类的dao jar文件。它有一个配置文件dao-resource.xmlid=datasource覆盖jar文件中的spring bean

我使用它有自己的app-context.xml另一个项目这个jar文件,但我想在jar文件

我怎么做这个覆盖与id="datasource"豆。我试图在app-context.xml中添加一个具有相同ID的bean,并将这两个文件添加到classpathxmlapplicat ....第一个dao-resource.xml然后app-context.xml

但这似乎并不奏效。

我怎么回事,可以覆盖一个bean

回答

1

具有罐Spring配置文件,使事情变得有点难以管理。如果你注释了你的类,它会更容易。

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

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

简而言之 - 你不能重载一个bean,所以拆分你的xml文件并只包含你需要的部分。

+0

非常感谢你的澄清....你们摇滚 – user373201 2012-03-21 23:09:21