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

时间:2014-10-17 07:49:00

标签: java spring

我有两个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";
    }
 }

另一个名为SpringConfiguration,用于定义一些bean:

@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;

但是,它不起作用。当我注册&#34; MongoConfiguration.class&#34;时,它正常工作。如何注册多个Spring配置文件?

1 个答案:

答案 0 :(得分:3)

您无需手动注册。那是@Configuration责任指出这个特定文件应该被计为配置。

也不要在两个文件中使用相同的@ComponentScan。你如何引导弹簧进入你的应用程序?你应该在那里的某个地方扩展WebMvcConfigurerAdapter。