Условием, на которое он должен реагировать, является тип экземпляра bean-компонента, загруженного в контекст ранее.
У меня есть: р>
Код: Выделить всё
@Transactional
@Order(Ordered.HIGHEST_PRECEDENCE)
@Configuration
public class InitializationConfig {
@Bean
public DbState getDbState(CallerInfoTypeRepository callerInfoTypeRepository) {
return callerInfoTypeRepository.findAll().isEmpty() ?
new EmptyDb() : new InitializedDb();
}
}
Код: Выделить всё
@Component
@ConditionalOnBean(EmptyDb.class)
public class Initializer {
@Bean
public List initializeCallerTypes(CallerInfoTypeRepository callerInfoTypeRepository) {
List callerInfoTypeEntities = Instancio.ofList(CallerInfoTypeEntity.class).size(4)
.create();
for (CallerInfoTypeEntity infoType : callerInfoTypeEntities) {
infoType.setId(null);
infoType.getSubscriberInfo().setId(null);
infoType.getSubscriberInfo().getMapCoordinate().setId(null);
PersonalAddressEntity userInfo = infoType.getUserInfo();
userInfo.setId(null);
}
List collect = callerInfoTypeRepository.saveAllAndFlush(callerInfoTypeEntities).stream()
.map(CallerInfoTypeEntity::getId)
.collect(Collectors.toList());
List all = callerInfoTypeRepository.findAll();
return collect;
}
}
Так и должно быть быть просто простым рычагом магии IoC и Spring, поэтому мне не нужно прикасаться к отвращению как к нулю. Я уверен, что Spring справится с этим, но мне не хватает.
Можете ли вы дать совет?
РЕДАКТИРОВАТЬ: Инициализатор находится в стадии разработки. выполняется, даже если getDbState возвращает InitializedDb в мощный контекст
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/783 ... nstance-of
Мобильная версия