2014-10-17 38 views
2

我有兩個Spring配置文件。該一個名爲MongoConfiguration:如何註冊多個Spring配置文件?

@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使用定義一些豆:

@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公司配置文件?

+1

有一個「根」配置文件,並在「@ ComponentScan」區域的某處找到「子」配置文件。在掃描過程中,Spring會提取它們。 – 2014-10-17 07:51:58

+0

如何找到「子」配置文件?可以給我一些用法嗎?坦克 – v11 2014-10-17 07:56:25

+0

我不明白這個問題。當然你知道'@ ComponentScan'的作用嗎?爲什麼你在這兩個文件中都有相同的價值? – 2014-10-17 07:57:18

回答

3

您不必手動註冊它們。這就是@Configuration這個特定文件應該算作配置的責任點。

也不要在兩個文件中使用相同的@ComponentScan。你如何引導你的應用程序的春天?你應該有擴展WebMvcConfigurerAdapter的類。

+0

謝謝,我是初學者春天 – v11 2014-10-17 08:02:37

+0

我不知道如何找到其他配置,我的項目不是web項目 – v11 2014-10-17 08:07:53

相關問題