【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

简介: Controller的使用及获取请求参数的示例
Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

汇总目录链接:【Spring Boot实战与进阶】学习目录

注解 释义
@Controller 处理http请求
@RestController 返回json,相当于@Controller+@ResponseBody
@RequestMapping 配置URL映射
@GetMapping 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping 组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写
@PathVariable 获取URL中的数据
@RequestParam 获取请求参数的值

示例一:返回Json字符串或者跳转到页面

  取决于是否有@ResponseBody,示例使用的类都用注解@RestController,因此包含@ResponseBody,故返回Json字符串。

@RequestMapping(value="/demo/java")
public String java() {
    return "java";
}

在这里插入图片描述

示例二:不传参

@RequestMapping(value="/demo/json")
public Map<String, Object> json() {
    Map<String, Object> map = new HashMap<>();
    map.put("sex", "男");
    map.put("name", Arrays.asList("tom","bob","tony"));

    return map;
}

在这里插入图片描述

示例三:传参

@RequestMapping(value="/demo/getId")
public Map<String, Object> getId(Integer id) {
    Map<String, Object> map = new HashMap<>();
    map.put("id", id);
    
    return map;
}

在这里插入图片描述

示例四:参数设置

name:请求传递的字段,映射到方法参数。
required:必输设置,默认true。
defaultValue:默认值

@RequestMapping(value="/demo/login")
public Map<String, Object> login(
        @RequestParam(name = "user", required = false, defaultValue = "admin") String account,
        @RequestParam(name = "pass", required = false, defaultValue = "123456") String password) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", account);
    map.put("password", password);

    return map;
}

在这里插入图片描述

示例五:传递对象

@RequestMapping(value="/demo/bean")
public Map<String, Object> bean(User user) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", user.getAccount());
    map.put("password", user.getPassword());

    return map;
}

在这里插入图片描述

示例六:把参数作为URL地址的一部分

@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
    System.out.println("查询到了id="+id);
}

发送请求:http://localhost:8080/user/1
控制台输出:

查询到了id=1

示例七:Model数据模型

  SpringMVC在内部使用了一个Model接口存储数据模型,它的功能类似java.util.Map,但是比Map容易使用。

@PostMapping("/user")
public void saveUser(User user, Model model) {
    System.out.println(model);
    System.out.println("添加用户信息 user:"+ user);
}

发送请求:http://localhost:8080/user?account=yunfan&password=123456
控制台输出:

{user=User{account='yunfan', password='123456'}, org.springframework.validation.BindingResult.user=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
添加用户信息 user:User{account='yunfan', password='123456'}

示例八:Json请求

@PostMapping("/updUser")
public void updateUser(@RequestBody User user) {
    System.out.println("修改用户信息"+user);
}

发送请求:http://localhost:8080/updUser
使用post工具发送Json请求,先设置下Headers参数。
在这里插入图片描述
在这里插入图片描述
控制台输出:

修改用户信息User{account='yunfan', password='123456'}
相关文章
|
1天前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
19 3
|
1天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
13 1
|
1天前
|
开发框架 监控 Java
深入探索Spring Boot的监控、管理和测试功能及实战应用
【5月更文挑战第14天】Spring Boot是一个快速开发框架,提供了一系列的功能模块,包括监控、管理和测试等。本文将深入探讨Spring Boot中监控、管理和测试功能的原理与应用,并提供实际应用场景的示例。
14 2
|
1天前
|
Java Spring 容器
深入理解Spring Boot启动流程及其实战应用
【5月更文挑战第9天】本文详细解析了Spring Boot启动流程的概念和关键步骤,并结合实战示例,展示了如何在实际开发中运用这些知识。
17 2
|
1天前
|
JavaScript Java 开发者
Spring Boot中的@Lazy注解:概念及实战应用
【4月更文挑战第7天】在Spring Framework中,@Lazy注解是一个非常有用的特性,它允许开发者控制Spring容器的bean初始化时机。本文将详细介绍@Lazy注解的概念,并通过一个实际的例子展示如何在Spring Boot应用中使用它。
21 2
|
1天前
|
Java 调度 Maven
Springboot实战篇--Springboot框架通过@Scheduled实现定时任务
Spring Boot的Scheduled定时任务无需额外Maven依赖,通过`@EnableScheduling`开启。任务调度有两种方式:fixedRate和fixedDelay,前者任务结束后立即按设定间隔执行,后者在任务完成后等待设定时间再执行。更灵活的是cron表达式,例如`0 0 3 * * ?`表示每天3点执行。实现定时任务时,需注意默认单线程执行可能导致的任务交错,可通过自定义线程池解决。
|
1天前
|
XML Java API
Spring Boot 整合 LiteFlow 规则引擎:概念与实战
【4月更文挑战第30天】在现代软件开发中,规则引擎允许我们以声明式的方式定义业务逻辑和决策路径。LiteFlow 是一个轻量级、易于使用的组件式规则引擎,它可以与 Spring Boot 应用无缝整合。本文将介绍如何在 Spring Boot 项目中引入 LiteFlow,实现灵活的业务流程管理。
31 0
|
1天前
|
开发框架 Java Maven
SpringBoot-Starter 概念与实战
【4月更文挑战第30天】Spring Boot 是一个基于 Spring Framework 的开发框架,旨在简化 Spring 应用程序的搭建和开发。Spring Boot 提供了大量的 Starter(启动器)来简化项目的依赖管理和配置,其中最为常见的是 SpringBoot-Starter。
35 1
|
Java Spring 前端开发
【spring Boot】Spring中@Controller和@RestController之间的区别
spring Boot入手的第一天,看到例子中的@RestController ............. 相同点:都是用来表示Spring某个类的是否可以接收HTTP请求 不同点:@Controller标识一个Spring类是Spring MVC controller处理器     @RestController:  a convenience annotation that does nothing more than adding the@Controller and @ResponseBody annotations。
1400 0
|
1天前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
56 0