我有两个 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;
但是,它不起作用。当我只注册“MongoConfiguration.class”时,它可以正常工作。如何注册多个Spring配置文件?
最佳答案
您不必手动注册它们。这是 @Configuration
的责任来指出 spring 这个特定的文件应该被算作配置。
也不要在两个文件中使用相同的@ComponentScan
。如何将 spring 引导到您的应用程序中?您应该在某个地方有扩展 WebMvcConfigurerAdapter 的类。
关于java - 如何注册多个Spring配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26420319/