java – 应该在服务层中编写哪些方法?
我尝试按照Spring MVC的教程进行操作.在教程中有UserDao接口(使用Spring Data JPA)
public interface UserDao extends JpaRepository<User, Long> {
User findByUsername(String username);
}
还有UserService和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);
}
}
>为什么save方法在Service Layer中而不在dao层?我读到所有CRUD操作都应该进入dao层.> UserServiceImpl中findByUsername(String username)的用途是什么?我们可以在dao中使用该方法,因为我们使用Spring Data,所以Spring已经实现了这个功能.