刚学springboot+mybaties碰到个疑惑的地方,来请大神们指点一下:
----
学习时,我做了个查询所有用户的功能
1、先写MODEL User类    private String name;
    private String password;2、实现UserMapper@Mapper
public interface UserDao {
    @Select("select * from t_user")
    List<User> userList();
}3、然后controller实现    @Autowired
    UserDao userDao;    @GetMapping("list1")
    @ResponseBody
    public List<User> list1() {
        List<User> users = userDao.userList();
        return users;
    }其它配置好后,运行就能正常访问数据库了,列出所有用户了。。
----
但我在看网上有不少教程,在Mapper后还有@Service,像下面这样多出二个文件public interface IUserService {
//
}@Service
public class UserServiceImpl implements IUserService {
//
}最后在Controller中使用这个@Autowired
private ICityService cityService;我的springboot是最新版的所以我的问题是,这个@Service层要不要写的呢?用了,觉得好绕啊,多了二个文件~先谢谢了~

解决方案 »

  1.   

    业务复杂时service接口+对应的不同实现类,业务规模一般,service实现类即可,练习项目,可以没有service层
      

  2.   

    建议楼主先去补补 MVC 和 java ee 的三层体系架构相关的背景知识
      

  3.   

    这是最正常的mvc 你可以了解下
      

  4.   

    dao,service,controller三层架构区分数据库操作与业务操作的
      

  5.   

    这个是有必要的   mvc模式   我们从controller控制层接收请求  去业务层面层service里面寻找方法  再到他的实现类serviceimpl里面执行业务  在处理业务过程中涉及到数据库则去数据库操作层dao进行查询
      

  6.   

    怎么说呢,,service层是处理业务逻辑的,打个比方,你如果要对数据进行一些清洗或者处理的话,比如对密码加密等等操作时,将这些业务处理代码放在controller显然是不合理,要充分明白,controller就是负责前端和后端的中转站,service负责处理数据。分工明确后我们才能一目了然,在公司上班的话,公司项目都是这样,因为一般正式工作了都是协同开发。如果别人都看不懂你的代码。定然会被批的。所以这种写法是个模式,是个标准,但不是强制需求。但是,若是你以后要扩展的话,少了中间的service,你的代码就会全部挤在controller.整个项目就会看起来很臃肿。
      

  7.   

    MVC的基本框架结构,service是业务处理层,就是对你查询出来的数据进行二次处理;