我有两个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配置文件?
答案 0 :(得分:3)
您无需手动注册。那是@Configuration
责任指出这个特定文件应该被计为配置。
也不要在两个文件中使用相同的@ComponentScan
。你如何引导弹簧进入你的应用程序?你应该在那里的某个地方扩展WebMvcConfigurerAdapter。