リポジトリで Spring Data Mongo を使用しています。私の xml-configuration では、すべて正常に動作します。ここで、xml-configuration の代わりに Java 構成を使用したいと考えています。これは、リポジトリの Java 構成です。
@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();
}
}
カスタム実装のリポジトリがあります:
インターフェイス: MyRepository (カスタム インターフェイスを拡張)
CustomInterface: MyRepositoryCustom
実装: MyRepositoryImpl
component-scan アノテーションを含む別の構成ファイルがあります。
@Configuration
@ComponentScan(basePackages = {"foo.bar"})
@Import(DefaultMongoDbFactoryConfig.class)
public class AppConfig {
}
現在、Spring は起動時にカスタム実装を自動配線していないようです。「適格な Bean のタイプがありません」というメッセージが表示されます。これはJava構成でサポートされていませんか、それとも何か不足していますか?
編集:私は春のデータモンゴ1.3.1と春の3.2.4を使用しています