J'essaie de suivre un tutoriel sur Spring MVC. Dans le tutoriel, il est l'interface UserDao (printemps données JPA est utilisé)Quelles méthodes doivent être écrites dans la couche Service?
public interface UserDao extends JpaRepository<User, Long> {
User findByUsername(String username);
}
Aussi il y a le UserService et UserServiceImpl
public interface UserService {
void save(User user);
User findByUsername(String username);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Autowired
private RoleDao roleDao;
@Autowired
private BCryptPasswordEncoder bCryptPasswordEncoder;
@Override
public void save(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
Set<Role> roles = new HashSet<>();
roles.add(roleDao.getOne(1L));
user.setRoles(roles);
userDao.save(user);
}
@Override
public User findByUsername(String username) {
return userDao.findByUsername(username);
}
}
- Pourquoi méthode d'enregistrement est dans la couche de service et non dans le Dao couche? J'ai lu que toutes les opérations CRUD devraient aller dans la couche dao.
- Quel est le but de findByUsername (String username) dans UserServiceImpl? Nous pouvons utiliser la méthode dans dao, car nous utilisons Spring Data, donc Spring a déjà implémenté cette fonctionnalité.
Voir cette question http://stackoverflow.com/q/3885675/217324 –