Назад к вопросам
Junior — Middle
64
Можешь привести примеры, как реализуются интерфейсы в Spring Boot?
Ответ от нейросети
sobes.tech AI
В Spring Boot интерфейсы реализуются так же, как и в стандартном Java, но с особенностями, связанными с внедрением зависимостей и компонентным сканированием.
Пример:
- Определяем интерфейс:
public interface GreetingService {
String greet(String name);
}
- Реализуем интерфейс как компонент Spring:
import org.springframework.stereotype.Service;
@Service
public class GreetingServiceImpl implements GreetingService {
@Override
public String greet(String name) {
return "Hello, " + name + "!";
}
}
- Используем внедрение зависимости в контроллере или другом компоненте:
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, если есть несколько реализаций интерфейса.