我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spring中Controller应用深入理解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spring中Controller应用深入理解

概述

Controller是Spring接受并处理网页请求的组件,是整个应用的入口,因此学会Controller的常用注解对理解一个应用是重中之重。SpringBoot的Controller中经常会用到注解@Controller、@RestController、@RequestMapping、@RequestBody等,本短文主要对这些常用的Controller注解进行简单介绍。

1. 添加依赖

首先,需要保障此项目中存在spring-boot-starter-web依赖项,否则,当前项目并不具备Web应用程序开发所需的依赖!

提示:spring-boot-starter-web是建立在spring-boot-starter的基础之上的,即包含了spring-boot-starter,所以,在此次调整依赖项时,只需要将原有的spring-boot-starter改为spring-boot-starter-web即可!

<!-- Spring Boot框架支持WEB开发的依赖项 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

当项目中存在以上依赖项时,就具备了Web开发的依赖,且此依赖项中内置了Tomcat,当启用项目时,会自动将当前项目编译、打包、部署到内置的Tomcat上,并启动Tomcat。

在根包下创建controller.AlbumController类,将此类配置为控制器类,并处理“添加相册”的请求:

@RestController
@RequestMapping("/album")
public class AlbumController {
    @Autowired
    private IAlbumService albumService;
    // http://localhost:8080/album/add-new?name=TestAlbum001&description=TestDescription001&sort=66
    @RequestMapping("/add-new")
    public void addNew(AlbumAddNewDTO albumAddNewDTO){
        albumService.addNew(albumAddNewDTO);
    }
}

完成后,启动项目,打开浏览器,通过http://localhost:8080/album/add-new?name=TestAlbum001&description=TestDescription001&sort=66可以测试添加数据!

提示:目前添加相册成功时,在浏览器中并不会有任何提示。

如果使用相同的请求参数反复提交请求,浏览器会显示500错误,这是因为没有处理异常所导致的!

2. 关于异常

可能出现的异常

  • 如果某个方法会抛出异常,则谁调用,谁处理;
  • 如果调用的方法抛出了异常,当前方法也没有使用try...catch进行捕获并处理,相当于当前方法抛出了此异常;
  • 如果服务器端程序运行时出现了异常,始终未被处理,框架默认的行为是响应500错误,此时应该检查服务器端的控制台,在控制台中应该有异常的相关信息;
  • 处理异常的本质是:告诉客户端执行失败,且失败的原因是什么,以至于客户端下次提交请求时可能成功,另外,对于某些特殊的情景,可能还需要补充执行一些其它代码;
  • 关于异常的捕获处理和抛出,在典型的服务器端项目中,Mapper、Service都不能处理异常,因为它们不与客户端直接交互,如果它们处理了异常,Controller将不知道出现过错误,反而响应“成功”的结果到客户端,但客户端的请求是没有达到预期的目标的,而Controller有义务处理异常,因为它是与客户端交互的组件

总结

本文只是对常用的一些@Controller层的注解进行简介,对这些注解组合使用,才能够达到想要完成的目的任务。

到此这篇关于Spring中Controller应用深入理解的文章就介绍到这了,更多相关Spring Controller内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Spring中Controller应用深入理解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spring中Controller应用深入理解

这篇文章主要介绍了Spring项目中的Controller,SpringController本身也是一个SpringBean,只是它多提供了Web能力,只需要造类上提供@Controller注解即可
2022-12-08

详解Spring Boot中Controller用法

ControllerController是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。他的重点就在于如何从HTTP请求中获得信息,提取参数,并分发给
2023-05-31

深入理解spring的AOP机制原理

前言在软件开发中,散布于应用中多处的功能被称为横切关注点,通常来讲,这些横切关注点从概念上是与应用的业务逻辑相分离的。把这些横切关注点和业务逻辑分离出来正是AOP要解决的问题。AOP能够帮我们模块化横切关注点,换言之,横切关注点可以被描述为
2023-05-31

深入解析Golang中锁的原理和应用

Golang中锁的原理及应用解析引言在并发编程中,常常会遇到多个 goroutine 同时访问共享资源的情况,一旦多个 goroutine 同时对共享资源进行读写操作,可能导致数据不一致性或者产生竞态条件。为了解决这个问题,Golang 提
深入解析Golang中锁的原理和应用
2023-12-28

深入理解Spring事务及传播机制之原理解析与实际应用

Spring事务管理机制提供了多种传播行为,可以控制事务的范围和隔离级别,保证数据一致性和完整性。在实际应用中,需要根据具体业务场景选择合适的传播行为实现事务控制
2023-05-16

深入理解spring boot异步调用方式@Async

本文主要给大家介绍了关于spring boot异步调用方式@Async的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:1.使用背景在日常开发的项目中,当访问其他人的接口较慢或者做耗时任务时,不想程序一直卡在耗时任务上,想程序能
2023-05-31

深入理解Spring中bean的生命周期介绍

1.以ApplocationContext上下文单例模式装配bean为例,深入探讨bean的生命周期:(1).生命周期图:(2).具体事例:person类实现BeanNameAware,BeanFactoryAware接口public cl
2023-05-31

深入理解Vue3响应式原理

响应式就是当对象本身(对象的增删值)或者对象属性(重新赋值)发生变化时,将会运行一些函数,最常见的就是render函数,下面这篇文章主要给大家介绍了关于Vue3响应式原理的相关资料,需要的朋友可以参考下
2022-12-19

深入理解Spring MVC的数据转换

本文主要给大家介绍了关于Spring MVC数据转换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。数据绑定SpringMVC负责将request中的信息以一定的方式转换并绑定到处理方法的参数上。整个过程的处理核
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录