의 구조는이 같은, 빈 건축에서 "MongoTemplate"를 사용이 때 @Autowired가 제기 사용 방법 :봄
public class BasicRepository<T> implements DAO<T>{
...
@Autowired
private MongoTemplate mongoTemplate;
public BasicRepository(Class<?> typeParameterClass,DBConvertor<T> convertor){
getLogger().info("create a Object of BasicRepository,type of "+typeParameterClass);
this.typeParameterClass = typeParameterClass;
mongoTemplate.getCollectionName(typeParameterClass);
this.convertor = convertor;
}
...
}
구성 :
public class BeansConfiguration {
@Bean
DBConvertor<Topic> topicConvertor(){
return new DBConvertor<>(Topic.class);
}
@Bean
BasicRepository<Topic> topicDao(){
return new BasicRepository<Topic>(Topic.class,topicConvertor());
}
}
보시다시피, 때 BasicRepository를 구성하면, 예외를 던질 것입니다. 왜냐하면 "mongoTemplate"이 시간을 만드는 동안 null이기 때문입니다. 어떻게해야합니까?
'@ PostConstruct'를 확인하십시오. –
템플릿을 필드 대신 생성자에 삽입하는 것이 좋습니다. – chrylis
@SotiriosDelimanolis 감사합니다. 정말 도움이됩니다. – v11