Java 如何注册多个Spring配置文件?

Java 如何注册多个Spring配置文件?,java,spring,Java,Spring,我有两个Spring配置文件。其中一个名为MongoConfiguration: @Configuration @EnableMongoRepositories @ComponentScan("com.vmojing.mongodb") public class MongoConfiguration extends AbstractMongoConfiguration { @Override protected String getDatabaseName() {

我有两个Spring配置文件。其中一个名为MongoConfiguration:

@Configuration
@EnableMongoRepositories
@ComponentScan("com.vmojing.mongodb")

public class MongoConfiguration extends AbstractMongoConfiguration {


    @Override
    protected String getDatabaseName() {
        return "demo";
    }
    @Override
    public Mongo mongo() throws Exception {

        return new Mongo(new ArrayList<ServerAddress>() {{ add(new ServerAddress("127.0.0.1", 27017));}});

    }
    @Override
    protected String getMappingBasePackage() {
        return "com.vmojing.mongodb.domain";
    }
 }

但是,它不工作。当我只注册“MongoConfiguration.class”时,它工作正常。如何注册多个Spring配置文件?

您不必手动注册它们。这是
@Configuration
向spring指出此特定文件应算作配置的责任


也不要在两个文件中使用相同的
@ComponentScan
。如何将spring引导到应用程序中?您应该在某个地方有扩展WebMVCConfigureAdapter的类。

有一个“根”配置文件,并在
@ComponentScan
区域的某个地方找到“子”配置文件。Spring将在扫描过程中提取它们。如何定位“子”配置文件?可以给我一些用法吗?TanksI不理解这个问题。您肯定知道
@ComponentScan
的功能吗?为什么两个文件中的值都相同?谢谢,我是学习Spring的初学者。现在,我知道该项目只需要@ComponentScan。我想定位“MongoConfiguration”。@BoristheSpider很抱歉,我已经找到了使用“@Import({SpringConfiguration.class})”的解决方案。谢谢你的回答,我不知道如何找到其他配置,我的项目也不是web项目
@Configuration
@ComponentScan("com.vmojing.mongodb")
public class SpringConfiguration {
    @Bean
    public BasicRepository<Topic> topicDao(){
        return new BasicRepository<Topic>(Topic.class);
    }   
}
AnnotationConfigApplicationContext a = new AnnotationConfigApplicationContext();
        a.register(MongoConfiguration.class);
        a.register(SpringConfiguration.class);
        a.refresh();
        ApplicationContext context = a;