injection de dépendance et interface
Bonjour,
je débute en java et tente de faire une application basique avec spring.
Et dans les tutoriels que je suis je vois écris ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
@RestController
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@GetMapping("/employees")
public List<Employee> getAllEmployees() {
return employeeService.getEmployees();
}
} |
le @Autowired va instancier un objet employeService et je peux ensuite appeler les méthodes qu'il contient !
et d'ailleurs dans le package service j'ai la classe EmployeeService :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
@Service
public class EmployeeService {
@Autowired
private EmployeeRepository employeeRepository;
public List<Employee> getEmployees() {
return employeeRepository.findAll();
}
} |
Même principe, mais ! la classe EmployeeRepository :
Code:
1 2 3 4 5
|
@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long>{
} |
C'est une interface ! Il me semblait qu'on ne pouvait pas instancier ou créer un objet à partir d'une interface !
Magie de Spring ?
Merci par avance pour vos explications.