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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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.