前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【企业云端全栈开发实践-2】Spring Boot Controller

【企业云端全栈开发实践-2】Spring Boot Controller

作者头像
程序员洲洲
发布于 2024-06-07 04:35:45
发布于 2024-06-07 04:35:45
9600
代码可运行
举报
文章被收录于专栏:项目文章项目文章
运行总次数:0
代码可运行

一、Web入门

Spring Boot将传统Web开发的mvc、json、tomacat等框架整合,提供了spring-boot-starter-web组件,简化了Web的应用配置。

创建SpringBoot项目勾选Spring Web选项之后,将会自动的将spring-boot-starter-web组件加入到项目之中。

spring-boot-starter-web启动器主要包括了web、webmvc、json、tomcat等基础依赖组件,作用是提供web开发场景所需要的所有底层依赖。

webmvc为web开发的基础框架,json为json数据解析组件,tomcat为自带的容器依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

二、控制器

什么是控制器,这个是MVC模式中的一个东西。 其中M是Model,用来存储数据和封装数据,Controller就是控制器,用来协调和控制。 View是视图,用来显示数据。

数据库中加载的数据先封装到Model上,然后通过Controller控制器绑定到View视图上,视图就理解为HTML页面即可,然后View显示在浏览器上。

控制器一个是接收用户HTTP请求,然后控制器去取数据,最终把数据交给视图,视图响应给用户。

Spring Boot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。

如果请求的是页面和数据,使用@Controller注解即可,如果只是请求数据,则可以使用@RestController注解即可。

1、@Controller

  • Controller通常与Thymeleaf模板引擎结合使用的。 如下代码:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Controller
public class HelloController{
	@RequestMapping("/hello")
	public String index(ModelMap map){
	map.addAttribute("name","zhangsan");
	return "hello";
	}
}

上述示例中返回了hello页面和name的数据,在前端页面中可以通过${name}参数获取后台返回的数据并进行显示。

2、@RestController

默认情况下,@RestController注解将会返回的对象数据转换为JSON格式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
public class HelloController{
	@RequestMapping("/user")
	public User getUser(){
		User user = new User();
		user.setUsername("zhangsan");
		user.setPassword("123");
		return user;
	}
}

3、路由映射

控制器通过路由映射接收前端的请求:

  • @RequestMapping注解主要负责URL的路由映射。可以添加在Controller类或者具体的方法上。
  • 如果添加在Controller上,则这个Controller中的所有的理由映射都将会加上此规则映射,如果添加在方法上,则只针对当前的方法生效。
  • @RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。 (注意与@RestController区分。)

常用的属性参数如下: 1、value:请求URL的路径,支持URL模板、正则表达式。 2、method:HTTP请求方法。 3、consumes:请求的媒体类型(Content-Type),如application/json 4、produces:响应的媒体类型。 5、params,headers:请求的参数及请求头的参数值。

  • value属性用于匹配URL映射,value支持简单表达式。
  • 如RequestMapping(“/user”)
  • 支持使用通配符匹配URL,用于统一映射某些URL规则类似的请求:@RequestMapping(“/getJson/*.json”),当在浏览器中请求getJson/a.json时,都会匹配到后台的Json方法。
  • 通配符匹配非常简单使用,支持“*”和“?”“**”等都行。
  • *表示任意字符,两个星号表示匹配任意路径,?表示匹配单个字符。
  • 有通配符的优先级低于没有通配符的。有两个星的低于一个星*的。

4、Method匹配

HTTP请求Method有GET、POST、PUT、DELETE等方式。HTTP支持的全部Method。

如:@RequestMapping(value=“/getdata”,method = RequestMethod.GET)

也可以使用@GetMapping、PostMapping等注解替代。

5、参数传递

@RequestParam将请求参数绑定到控制器的方法参数上,接收的参数来自HTTP请求体或者请求url的QueryString,当请求的参数名称与Controller的业务方法的参数名称一致时,@RequestParam可以省略。

@PathVaraible:用来处理动态的URL,URL的值可以作为控制器中处理方法的参数。

@RequestBody接收的参数示来自requestBody中,即请求体。一般用于处理非Content-Type:application/x-www-from-urlencoded编码格式的数据,比如‘application/json’、application/xml等类型的数据。

如下代码所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//http://localhost:8080?nickname=zhangsan
	@RequestMapping("value="/hello",method=RequestMethod.GET)
	public String hello(String nickname){
	return "nihao"+nickname;
	//多个参数的时候使用&符号拼接起来即可。如&phone
	//这个就是上述中的当请求的参数名称与Controller的业务方法的参数名称一致的时候,@RequestParam可以省略的。如果nickname和我们String name不一致的话那就不行了。只有一致时才能省略。
	应该这么写:
	public String gettest(@RequestParam("nickname") String name){
	//但这么写时,nickname是必须要要传递的,如果前端不传递,那么这个方法是不会响应的!
	//如果希望可选参数,那么可以如下:
	public String gettest(@RequestParam("nickname") ,required = false,String name){
	}

6、entity实体层

根据Java面向对象的特性,很多信息需要放到创建的对象中

然后再entity实体层,创建好对应的元素、get、set方法即可。如下图所示:

需要注意的是,实体层类里面的属性的名称必须和前端传过来的属性名称是一致的,这样就会自动封装到对象参数里面去。

前端以application/json的格式时,是花括号括起来的。 此时后端如果要接收json类型的数据,需要加上**@RequestBody**类型的注解。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot Web 开发注解篇
在 Spring Boot 快速入门中,只要在 pom.xml 加入了 spring-boot-starter-web 依赖,即可快速开发 web 应用。可见,Spring Boot 极大地简化了 Spring 应用从搭建到开发的过程,做到了「开箱即用」的方式。Spring Boot 已经提供很多「开箱即用」的依赖,如上面开发 web 应用使用的 spring-boot-starter-web ,都是以 spring-boot-starter-xx 进行命名的。
爱撸猫的杰
2019/03/28
1.5K0
Spring Boot Web 开发注解篇
Spring Boot(1)-构建应用实践
Spring 框架作为目前非常流行的一个 Java 应用开发框架,它所包含的内容是非常繁多的。Spring 框架包含几十个不同的子项目,涵盖应用开发的不同方面。要在这些子项目之间进行选择,并快速搭建一个可以运行的应用是比较困难的事情。
黄规速
2022/04/14
4690
Spring Boot(1)-构建应用实践
Spring Boot从零入门5_五脏俱全的RESTful Web Service构建
这一节我们正式进入Spring Boot的WEB服务开发,在WEB服务中,不可缺少的我们需要去提供API出来,那么就少不了设计API,而当前流行的一套API设计风格就是REST API ,接下来我们会介绍什么是RESTful API以及它的特点和如何去设计。完成设计后,我们会使用Spring Boot + MVC架构去实现一个RESTful Web Service。本文的所有内容都是经过多方面考察和参考官方资料,本着严谨的态度为自己也为一起学习的同学们负责,由浅入深,层层展开,让自己有不一样的收获。一起加油吧!
别打名名
2019/12/23
1.1K0
Spring Boot从零入门5_五脏俱全的RESTful Web Service构建
斗转星移,无人能及——Spring MVC
Spring MVC是Spring Framework中的一个组件,原名为Spring Web MVC。
愿天堂没有BUG
2022/10/28
2640
斗转星移,无人能及——Spring MVC
Spring Controller
Spring Boot 内集成了 Tomcat 服务器,也可以外接 Tomcat 服务器。通过控制层接收浏览器的 URL 请求进行操作并返回数据。
Qwe7
2022/08/12
1K0
Spring Boot Web应用开发:创建RESTful服务
Spring Boot使得创建RESTful服务变得非常简单。通过使用Spring Web MVC提供的注解,可以轻松定义控制器、处理请求和返回响应。
世间万物皆对象
2024/11/23
1010
基于Spring Boot 的Blog开发 原
之前写过几篇关于利用Spring MVC来开发的博客,从博客下面的评论以及GitHub上的Issues看还是会出现许多的问题,且大部分的问题都出在配置上。虽然说Spring MVC的配置较SSH简化了不少,但是在使用过程中仍然会觉得配置的吃力。
Gaussic
2018/08/17
4980
基于Spring Boot 的Blog开发
                                                                            原
Spring Boot (2) 构建一个RESTful Web服务
简单理解 RESTful 就是: “ 用明确的方法 操作 语义清晰的资源,来呈现不同的资源表现形式”。
张云飞Vir
2020/04/23
7060
Spring Boot(05):从@Controller到@Scheduled,Spring Boot注解全家桶等你来探索!
        Spring Boot是Spring家族中最受欢迎的开源框架之一,它可以通过注解的方式简化开发过程,使开发人员能够更加专注于业务逻辑的实现。本文将介绍Spring Boot中常用的注解,并讲解如何轻松实现开发、测试和生产环境的切换。
bug菌
2023/09/06
2320
Spring Boot(05):从@Controller到@Scheduled,Spring Boot注解全家桶等你来探索!
Spring Boot 中 REST API 接口传参
我们在开发 REST API 的过程中,经常需要传递参数,那么,我们可以怎么做呢?本文,我们将探讨 Spring Boot 项目中三种传递参数的方式,如下👇
Jimmy_is_jimmy
2023/12/05
6810
Spring Boot 中 REST API 接口传参
必须知道的Spring Boot中的一些Controller注解
本文旨在向你介绍在Spring Boot中controller中最基本的一些注解,不可能涵盖所有的,但至少让你了解最基本的,然后可以通过这些注解来写出一个API或HTML的端点。 本文我们将分为四部分: 1、controller的类型(传统的 和 REST) 2、路由(Routes) 3、如何接收数据 4、Controller示例 Controller 类型 你也许每天都在使用Spring ,但你知道controller有几种类型吗?其实controller是有两种的,一种就是传统的web的那种c
ImportSource
2018/04/03
8.8K0
必须知道的Spring Boot中的一些Controller注解
Spring Web MVC框架(二) 控制器
在前面我们搭建了基本的Spring Web MVC环境,并配置了一个控制器。下面我们来详细学习一下控制器。控制器的主要作用就是处理特定URL发过来的HTTP请求,然后进行业务逻辑处理,将结果返回给某个特定的视图。
乐百川
2022/05/05
7410
springBoot注解与分析
@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。 @ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。 @Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。 @EnableAutoConfiguration 自动配置。 @ComponentScan 组件扫描,可自动发现和装配一些Bean。 @Component可配合CommandLineRunner使用,在程序启动后执行一些基础任务。 @RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。 @Autowired自动导入。 @PathVariable获取参数。 @JsonBackReference解决嵌套外链问题。 @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。
全栈程序员站长
2022/08/04
1.1K0
springBoot注解与分析
SpringBoot Web开发精解
当在 Spring Boot 中引入 Web 模块时,SpringBoot 会帮我们自动配置 Web 相关的组件,其中 Spring MVC 便是最重要的部分。
堆栈哲学
2023/03/08
6170
SpringBoot Web开发精解
一口气带你吃透40个常用的Spring Boot注解
@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。
Java程序猿
2022/05/23
3900
Spring Boot注解
@RestController 是一个 Spring Framework 中的注解,用于标识一个类是一个控制器(Controller),并且该控制器中的方法返回的数据不是视图页面,而是直接作为响应内容发送到客户端,通常是以 JSON 格式返回数据。
用户4396583
2024/07/28
2030
安排上了!一文掌握 Spring Boot 常用注解
可以看到七哥给大家整理的目录,我个人觉得还是比较清晰的,也尽可能的完善了,我带着大家过一遍,整清楚了含义和用法,剩下的就交给你们去实战了。
捡田螺的小男孩
2021/09/29
1.6K0
安排上了!一文掌握 Spring Boot 常用注解
【SpringMVC】基础入门(1)
Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中。它的正式名称“Spring Web MVC”来⾃其源模块的名称(Spring-webmvc),但它通常被称为"Spring
三三是该溜子
2024/12/30
1200
【SpringMVC】基础入门(1)
Java学习笔记-全栈-web开发-16-SpringMVC
Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。
devi
2021/08/18
6540
SpringBoot的Controller层常用注解
@Controller : 加在类上面的注解,使得类里面的每个方法都返回一个视图页面。
Java学术趴
2022/06/29
3.2K0
SpringBoot的Controller层常用注解
相关推荐
Spring Boot Web 开发注解篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档