千家信息网

Java中@Controller、@RestController注解的区别

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Java中@Controller、@RestController注解的区别",在日常操作中,相信很多人在Java中@Controller、@RestController注解的区别问题
千家信息网最后更新 2024年11月23日Java中@Controller、@RestController注解的区别

这篇文章主要介绍"Java中@Controller、@RestController注解的区别",在日常操作中,相信很多人在Java中@Controller、@RestController注解的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java中@Controller、@RestController注解的区别"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

@Controller、@RestController注解区别:

@RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用。

一、@Controller注解

@Controller 是Spring框架提供的注解。

@Controller标识的类,该类代表控制器类(控制层/表现层)。这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层),@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)。

【MVC设计模式:M(model)指模型,V(view)指视图层,C(controller)指控制层。M代表模型一般指service和DAO;view代表视图一般指页面eg:jsp,html ftl等;C代表控制器,比如springMVC 中的controller或struts2中的action 。MVC其实我们正常理解应该是VMC:JSP/HTML页面数据->控制器->数据逻辑处理并持久化。但官方是MVC,所以我们按照MVC这么记住就对了。】

@Controller标记在一个类上还不能真正意义上说它就是SpringMVC的控制器,应为这个时候Spring还不认识它,这个时候需要把这个控制器交给Spring来管理。用下面方式管理:

在applicationContext.xml文件里面配置如下 扫描器

上面的扫描器可以扫描"com.baidu"包和它子包下面的所有带有@Component、@Controller、@Service、@Resposity等组件,并把他们添加到IOC容器中,由IOC容器管理。

@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC的 Controller类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了 @RequestMapping 注解。

@Controller只是定义了一个控制器类,而使用 @RequestMapping 注解的方法才是处理请求的处理器。

@Controllerpublic class HospitalController { //注入Service服务对象 @Autowired private HospitalService hospitalService; @RequestMapping(method = RequestMethod.POST, value = "/findAllHospital") @ResponseBody public Map findAllHospital(final HttpServletRequest request , @RequestBody Map parmMap , HttpServletResponse response){ Map map=parmMap ;//@RequestBody注解原因,系统会自动把request数据变成parmMap ........ ........ return map; } }

用@Controller定义一个控制器类,

用@RequestMapping给出外界访问方法的路径,或者说触发路径 ,触发条件。

用@ResponseBody标记Controller类中的方法。把return的结果变成JSON对象返回。(如果没有这个注解,这个方法只能返回要跳转的路径即跳转的html/JSP页面。有这个注解,可以不跳转页面,只返回JSON数据)

二、@RestController注解

@RestController 也是Spring框架提供的注解。(Spring4.0之后新增的)

@RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用。

Controller类中的方法返回值,默认是json对象,也就是相当于@Controller里面的方法上添加了@ResponseBody如果方法返回值,需要跳转,那么方法的返回类型必须是View 或者ModelAndView.

@RestControllerpublic class HospitalController { //注入Service服务对象 @Autowired private HospitalService hospitalService; @RequestMapping(method = RequestMethod.POST, value = "/findAllHospital") //方法上面可以不需要@ResponseBody注解,因为类上面用的是@RestController注解 public Map findAllHospital(final HttpServletRequest request , @RequestBody Map parmMap , HttpServletResponse response){ Map map=parmMap ;//@RequestBody注解原因,系统会自动把request数据变成parmMap ........ ........ return map; } }

到此,关于"Java中@Controller、@RestController注解的区别"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

注解 方法 控制 控制器 数据 代表 对象 标记 标识 页面 处理 学习 路径 管理 作用 原因 处理器 容器 就是 扫描器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 泰拉瑞亚手游服务器番外篇 知网的中国学术期刊数据库是 域名映射服务器上 服务器安装虚拟机报错硬盘故障 我的世界服务器信息 上海软件开发从业人数 一款游戏刚上线服务器就崩了 山西多功能软件开发代理价钱 数据库如何筛选实体 做软件开发有什么样的要求 计算机网络技术英文ppt 湖南互联网企业八戒科技 数据库升序是从小到大 计算机网络技术招生 天津机架式服务器云服务器 用dos连接数据库表 中科大网络安全实验 山东数字化城管软件开发 培育网络安全 靠谱的五金切割软件开发公司 虎林市采暖自动化控制软件开发 数据库基础教程 第六章 但 无线网覆盖服务器 做好个人网络安全工作总结 浪潮服务器进bmc查看系统 统一软件开发过程工作流 杨浦区网络技术咨询服务 天津会计软件开发要求 date数据库查询记录 知克莱网络技术有限公司
0