How does autowiring of custom spring data (mongo) repositories configured with java config work?

osi*_*gge 1 java spring spring-mvc spring-data spring-data-mongodb

I use Spring Data Mongo with repositories. In my xml-configuration everything works fine. Now I want to use Java configuration instead of xml-configuration. This is my java configuration for the repositories:

@Configuration
@EnableMongoRepositories
public class DefaultMongoDbFactoryConfig extends AbstractMongoConfiguration{

    @Value("${db.name}") private String dbName;

    @Inject
    private Mongo mongo;

    @Bean
    protected MongoDbFactory defaultMongoDbFactory() throws Exception {
        return new SimpleMongoDbFactory(mongo, dbName);
    }

    @Bean
    protected MongoTemplate defaultMongoTemplate() throws Exception {
        return new MongoTemplate(defaultMongoDbFactory());
    }

    @Override
    protected String getDatabaseName() {
        return dbName;
    }

    @Override
    public Mongo mongo() throws Exception {
        return mongo;
    }

    @Override
    protected String getMappingBasePackage() {
        return "foo.bar.repository";
    }

    @Override
    public MongoTemplate mongoTemplate() throws Exception {
        return defaultMongoTemplate();
    }


}
Run Code Online (Sandbox Code Playgroud)

我有一个带有自定义实现的存储库:
Interface:MyRepository(扩展自定义接口)
CustomInterface:MyRepositoryCustom
Implementation:MyRepositoryImpl

我有另一个配置扫描注释的配置文件:

@Configuration
@ComponentScan(basePackages = {"foo.bar"})
@Import(DefaultMongoDbFactoryConfig.class)
public class AppConfig {

}
Run Code Online (Sandbox Code Playgroud)

现在spring似乎并没有在启动时自动启动自定义实现.我得到"没有类型的合格豆".这在java配置中是不受支持还是我遗漏了什么?

编辑:我使用的是spring数据mongo 1.3.1和spring 3.2.4

Oli*_*ohm 5

包含在哪个包中DefaultMongoDbFactoryConfig?如果您没有在@EnableMongoRepositories注释中显式声明包,我们只扫描带注释的配置类的包.如果它已经存在foo.bar.config并且您的foo.bar.repositories存储库中没有存储库接口将被找到.