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

标签 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;

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

最佳答案

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

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

关于java - 如何注册多个Spring配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26420319/

相关文章:

java - 如何使 JTextArea 可滚动但仍设置高度?

嵌套对象的 Javax 验证 - 不工作

java - Spring JMS 并发和 JMSXGroupID

java - 使用哪个 Maven 原型(prototype)?

java - 变化计算器减一

java - 是否有 .Net 等同于 java.util.concurrent.Executor?

java - 如何在 Intellij Idea 中以不同方式突出显示库类?

java - 如何获取设备日历(默认日历)事件并显示在我们的应用程序中?

java - Spring Rest - 发布多个文件

java - 无法在 Spring LDAP 中进行身份验证