Sobes.tech
Назад к вопросам
Junior — Middle
64

Можешь привести примеры, как реализуются интерфейсы в Spring Boot?

Ответ от нейросети

sobes.tech AI

В Spring Boot интерфейсы реализуются так же, как и в стандартном Java, но с особенностями, связанными с внедрением зависимостей и компонентным сканированием.

Пример:

  1. Определяем интерфейс:
public interface GreetingService {
    String greet(String name);
}
  1. Реализуем интерфейс как компонент Spring:
import org.springframework.stereotype.Service;

@Service
public class GreetingServiceImpl implements GreetingService {
    @Override
    public String greet(String name) {
        return "Hello, " + name + "!";
    }
}
  1. Используем внедрение зависимости в контроллере или другом компоненте:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

    private final GreetingService greetingService;

    @Autowired
    public GreetingController(GreetingService greetingService) {
        this.greetingService = greetingService;
    }

    @GetMapping("/greet")
    public String greet(@RequestParam String name) {
        return greetingService.greet(name);
    }
}

Таким образом, Spring Boot автоматически создаст бин реализации интерфейса и внедрит его туда, где требуется.

Также можно использовать аннотацию @Qualifier, если есть несколько реализаций интерфейса.