@RestController注解相当于@ controller + @ResponseBody合在一起的作用。
@ controller是春天框架提供的注解。
@ controller标识的类,该类代表控制器类(控制层/表现层)。
这里控制层里面的每个方法,都可以去调用@ service标识的类(业务逻辑层),@ service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)。
【MVC设计模式:M(模型)指模型,V(视图)指视图层,C(控制器)指控制层。
M代表模型一般指服务和刀;视图代表视图一般指页面如:jsp、html ftl等;C代表控制器,比如springMVC中的控制器或struts2中的行动。
MVC其实我们正常理解应该是VMC: JSP/HTML页面数据→控制器→数据逻辑处理并持久化。
但官方是MVC,所以我们按照MVC这么记住就对了。
】
@ controller标记在一个类上还不能真正意义上说它就是SpringMVC的控制器,应为这个时候春天还不认识它,这个时候需要把这个控制器交给春来管理。用下面方式管理:
在applicationContext。xml文件里面配置如下扫描器
& lt;上下文:component-scan基础包=癱om.baidu”比; & lt;/背景:component-scan>
上面的扫描器可以扫描“com.baidu”包和它子包下面的所有带有@ component, @ controller, @ service, @Resposity等组件,并把他们添加到国际奥委会容器中,由国际奥委会容器管理。
@ Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC的控制器类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
@ controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。
@ controller 公开课HospitalController {//注入服务服务对象 @ autowired 私人HospitalService HospitalService; @RequestMapping(方法=RequestMethod。帖子,价值=" https://www.yisu.com/findAllHospital ") @ResponseBody 公共地图findAllHospital(最终HttpServletRequest请求, @RequestBody地图parmMap HttpServletResponse响应){ 地图地图=parmMap;//@RequestBody注解原因,系统会自动把请求数据变成parmMap …… …… 返回地图; } }
用@ controller定义一个控制器类,
用@RequestMapping给出外界访问方法的路径,或者说触发路径,触发条件。
用@ResponseBody标记控制器类中的方法。把返回的结果变成JSON对象返回。(如果没有这个注解,这个方法只能返回要跳转的路径即跳转的html/JSP页面。有这个注解,可以不跳转页面,只返回JSON数据)
@RestController也是春天框架提供的注解。(Spring4.0之后新增的)
@RestController注解相当于@ controller + @ResponseBody合在一起的作用。
控制器类中的方法返回值,默认是json对象,也就是相当于@ Controller里面的方法上添加了@ResponseBody
如果方法返回值,需要跳转,那么方法的返回类型必须是视图或者ModelAndView。
@RestController 公开课HospitalController {//注入服务服务对象 @ autowired 私人HospitalService HospitalService; @RequestMapping(方法=RequestMethod。帖子,价值=" https://www.yisu.com/findAllHospital ")//方法上面可以不需要@ResponseBody注解,因为类上面用的是@RestController注解 公共地图findAllHospital(最终HttpServletRequest请求, @RequestBody地图parmMap HttpServletResponse响应){ 地图地图=parmMap;//@RequestBody注解原因,系统会自动把请求数据变成parmMap …… …… 返回地图; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。