@Eka2

Как работет взаимосвязь между классами в Spring Boot Application?

Объясните, пожалуйста, как организована взаимосвязь между классами в примере. Почему выполняются методы, прописанные в классе BookServiceImpl, который реализует интерфейс BookService, ведь из BooksController подключается только интерфейс, а не его реализация. Что будет, если будет несколько вариантов реализации интерфейса BookService?

@RestController
@RequestMapping(value = "/books")
public class BooksController {
	@Autowired
	private BookService bookService;
}

public interface BookService {

}

@Service
public class BookServiceImpl implements BookService {

}
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Аннотация @Service указывает Spring, что нужно создать экземпляр данного класса и положить его в контекст приложения.

Аннотация @Autowired указывает, что нужно внедрить зависимость в создаваемый экземпляр класса. Подходящая зависимость выбирается по идентификатору, имени или по классу (или его родителю) внедряемой зависимости.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы