У меня следующая структура:
Контроллер (классы моделей) -> сервис -> (доменные классы), репозиторий.
Это то, что я делаю на уровне сервис когда мне нужно сохранить что-то, поступающее в тело запроса:
- Сопоставить класс модели (исходя из запроса тела) с классом домена (пытается использовать Orika)
- Сохраните класс домена и после получения подтверждения от БД
- сопоставьте класс домена, сохраненный в БД, с классом модели (Пытается использовать Orika)
- верните ответ контроллеру
Это то, что у меня пока есть, но оно не работает:
@Component
public class CustomMapper extends ConfigurableMapper {
private MapperFactory factory = new DefaultMapperFactory.Builder().build();
@Override
protected void configure(MapperFactory factory) {
System.out.println("Spring boot mapper initializing.....");
factory.classMap(ModelSource.class, ModelDestination.class)
.byDefault()
.register();
}
Я вижу сообщение «Spring boot mapper initialization .....», работающий при загрузке пружины, так что означает, что компонент загружается нормально.
@Autowired
private CustomMapper mapperFacade;
ModelDestination destination = mapperFacade.map(ModelSource.class, ModelDestination.class);
Когда я проверяю все поля назначения, все они равны нулю. Что я делаю неправильно? Спасибо