背景:看JAVAWEB的代码也有一个多月了,从摸不着头脑到有了自己的小小心得。可能每一个SpringBoot新手都会碰到很多问题,想把我的困惑的解释发出来,希望对大家有所帮助,如有错误欢迎指正。
首先推荐一本书:Spring实战(第4版),不说别的,第一章简直神作,讲的既通俗又有趣,把它当作SpringBoot的入门书籍会唤起你的兴趣,让你相对轻松的进入Spring的世界。不过不需纠结于太多细节,“纸上得来终觉浅,绝知此事要躬行”,真正的理解还需要通过代码和理论相互促进。
Controller Service 与Mapper
当我第一次看代码时,这三剑客是干嘛的困扰了我好久,而网上的解释大多语焉不详,下面这个解释我觉得还算通俗易懂。
- controller是为前端提供的访问入口,不用关心具体的业务逻辑。具体的业务逻辑放在了serviceImpl里,controller只需调用它封装好的方法即可。
- service提供业务逻辑要用到的方法,serviceImpl提供方法的具体实现。
说人话,ServiceImpl负责了主要的功能编写,Controller提供了使用的入口。 - 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对象,跳转到某个页面。