все эти вопросы возникают из за архитектуры спринга, в трехслойной архитектуре, от всех вендеров практически, есть презентация-домен-дао, рядом до всеми идет сервисный слой, но у спринга срединй слой это сервис, а доменный слой, его как будто нет, то есть он есть, но с сервисом поменялись местами
Мне кажется, многие эту картинку воспринимают буквально. Раз Repository Layer лежит ниже Service Layer, значит его нужно инжектить туда. Не знаю, возможно в книге ровно это и написано?
Как по мне, это разделение на слои весьма условно. И не означает "что куда инжектить". Скорее просто общее направление зависимостей.
Domain Model тут вообще "сбоку". И маленькими буквами там в скобочках у нее же "domain services". Опять же, не знаю, что имеет ввиду автор под этим термином, но если то, что мы с
@lex_it описывали выше, то эти сервисы как раз идут между Service Layer и Repository Layer.
А возможно тут имеется ввиду не анемичная доменная модель, у которой у класса User есть свои методы create, register и т.д.? Тогда действительно можно инжектить Repository в Service и этого достаточно. Но на практике в Спринг-приложениях я ни разу не встречал не-анемичных доменных моделей. Такое вообще бывает в природе? Мне кажется, DI мешает такие сделать.