Spring允许您多次重新定义同一个bean名称,并且对于给定名称处理的最后一个bean定义将成为获胜者。例如,您可以有一个XML文件定义核心bean,并在特定于客户端的XML文件中导入它,并重新定义其中一些bean。但这种方法有点脆弱,因为没有机制明确地说“此bean定义是覆盖”。我发现使用Spring 3中引入的新的@Bean语法处理这个问题是最清晰的方式。而不是将bean定义为XML,您可以在Java中定义它们。因此,您的核心bean将在一个@ Bean注释类中定义,您的客户端配置将继承该类,并覆盖适当的bean。这允许您使用标准java @ Override注释,明确指示正在覆盖给定的bean定义。