背景:看JAVAWEB的代码也有一个多月了,从摸不着头脑到有了自己的小小心得。可能每一个SpringBoot新手都会碰到很多问题,想把我的困惑的解释发出来,希望对大家有所帮助,如有错误欢迎指正。

首先推荐一本书:Spring实战(第4版),不说别的,第一章简直神作,讲的既通俗又有趣,把它当作SpringBoot的入门书籍会唤起你的兴趣,让你相对轻松的进入Spring的世界。不过不需纠结于太多细节,“纸上得来终觉浅,绝知此事要躬行”,真正的理解还需要通过代码和理论相互促进。

Controller Service 与Mapper

当我第一次看代码时,这三剑客是干嘛的困扰了我好久,而网上的解释大多语焉不详,下面这个解释我觉得还算通俗易懂。

  1. controller是为前端提供的访问入口,不用关心具体的业务逻辑。具体的业务逻辑放在了serviceImpl里,controller只需调用它封装好的方法即可。
  2. service提供业务逻辑要用到的方法,serviceImpl提供方法的具体实现。
    说人话,ServiceImpl负责了主要的功能编写,Controller提供了使用的入口。
  3. mapper为serviceImpl提供操作数据的方法,但方法的具体实现(也就是SQL语句)放在了mapper下的xml文件里。

接下来讲讲Controller那些常用的注解

@RequestMapping

@Controller
  @RequestMapping("/user")
  public class UserController{
      @RequestMapping("/users")
      public String users() {
          return "users";
      }
}

这是段很典型的Controller代码,要得到users()方法的效果,最起码需要在网址出输入:“…/user/users”
… 如果没有配置,就是localhost:8080

@RestController

@RestController=@Controller+ @ResponseBody

@ResponseBody:在controller类中我们可以在方法上面添加@ResponseBody注解,这样我们返回实体对象或者字符串时,就会自动转换成json对象传给前端。而当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象,跳转到某个页面。

参考文章:controller、service、dao调用关系

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐