Bonjour à tous,

J'ai besoin de votre aide car on m'a donné un exercice à faire mais je ne comprend pas du tout le code.

Tout d'abord on a une classe repository :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
package school.movies.code;
 
import org.springframework.data.repository.Repository;
import org.springframework.transaction.annotation.Transactional;
 
@Transactional(readOnly = false)
public interface MovieRepository extends Repository<Movie, Long> {
 
    void delete(Long movieNumber);
 
    List<Movie> findAllBy();
 
}
et ensuite on a un service qui utilise ce repository

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
@Service
public class MovieService {
 
    private final MovieRepository movieRepository;
 
    @Autowired
    public MovieService(MovieRepository movieRepository) {
        this.movieRepository= movieRepository;
    }
 
    public List<Movie> getMovies() {
        return movieRepository.findAllBy();
    }
 
    public void delete(Long movieNumber) {
        movieRepository.delete(movieNumber);
    }
 
}
Ce que je ne comprend pas c'est que l'interface MovieRepository n'est implémenté nulle part, il n'y as pas de classe MovieRepositoryImpl qui implémente ses méthodes. Pourtant malgrès cela les méthodes delete et getMovies de MovieService fonctionnent alors qu'elles utilisent les méthodes de l'interface. Du coup je ne comprend pas pourquoi ca fonctionne vu que on a pas implémenté les méthodes delete et findAllBy de l'interface.

Est-ce que vous sauriez m'eclairer?