java – 应该在服务层中编写哪些方法?

weixin_38064085 2019-09-12 11:26:40
我尝试按照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已经实现了这个功能.
...全文
34 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38069146 2019-09-12
  • 打赏
  • 举报
回复
> I read that all CRUD operations should go in the dao layer. 你是对的. userDao.save(user) – 这是CRUD.但是设置密码并添加角色 – 它是业务逻辑的一部分. DAO层应该对业务逻辑一无所知.在这种情况下,dao层应该只准备用户并将其保存到db中.就这样. > What the purpose of findByUsername(String username) in UserServiceImpl 出于同样的原因,findByUsername(String username)在Service中.现在没有任何反应,只是从DAO调用了一个方法.但突然之间,有必要在从DAO调用方法之前添加一些逻辑.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧