Java开发 - Spring MVC框架初体验(三)

简介: Java开发 - Spring MVC框架初体验

Json格式的响应正文


我们创建一个数据类,根据阿里命名规范,我们也学习下,数据类型的命名有一定规范,数据我们统一放在POJO包下,然后再分为VO,DTO等等,后面有时间再给大家详细说说,也可自行查找了解,这里我们创建一个VO类,用于响应客户端:

package cn.codingfire.springmvc.vo;
public class UserVO {
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

实现setter&getter方法,后面会有一个依赖帮我们来做,不需要我们显示的声明,后面再说。jackson-databind会自动调用属性的Setter / Getter方法。


在controller中添加一个新的方法:

package cn.codingfire.springmvc.controller;
import cn.codingfire.springmvc.vo.UserVO;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/user")
@ResponseBody
public class UserController {
    //http://localhost:8080/springmvc_war_exploded/user/login.page
    @RequestMapping("/login.page")
    public String login() {
        return "login page";
    }
    //http://localhost:8080/springmvc_war_exploded/user/info.page
    @GetMapping("/info.page")
    public UserVO userInfo() {
        UserVO userVO = new UserVO();
        userVO.setUsername("codingfire");
        userVO.setPassword("123456");
        return userVO;
    }
}

重启Tomcat,在浏览器输入新的路径,可以在浏览器看到json格式的数据:

1.png

到这里,正常的接口你已经会写了。但这还没完,我们还要去接受 客户端传递的参数,param属性即将登场。


接收请求的参数


我们新增一个注册方法:

    //http://localhost:8080/springmvc_war_exploded/user/register.page
    @GetMapping("/register.page")
    public UserVO register(String username, String password) {
        UserVO userVO = new UserVO();
        userVO.setUsername(username);
        userVO.setPassword(password);
        return userVO;
    }

重启Tomcat,然后在浏览器输入URL,这里要注意,有参数,get方法的参数你应该是了解的:

1.png

回车之后,发起请求,我们在浏览器看看返回的json数据是不是我们自己传入的:

1.png

非常好,达到了我们的预期。这里要注意 几点:


参数要声明为我们想要的类型,在整个过程中,Spring会尝试去转换参数类型为目标类型,如果转换失败,则会抛出异常。


参数名称也要和后端声明的一致,若是不一致,后端将无法得到请求中传入的参数,值将为null。这些值都由服务器决定,客户端需要严格遵守服务端定下的规则。


如果有必要,可在参数前声明@RequestParam注解,指定新的请求参数名,而不再使用声明的参数名。还可以在此注解中配置required属性,默认true,则客户端必传此参数,false时可不传。还可配置置defaultValue属性,设置默认值。


若是客户端提交参数较多,就需要将参数封装为对象的形式,如:

    @GetMapping("/register.page")
    public UserVO register(UserVO user) {
        UserVO userVO = new UserVO();
        userVO.setUsername(user.getUsername());
        userVO.setPassword(user.getPassword());
        return userVO;
    }

这样可以使代码更加简洁,我们在实际开发中也多会使用此模式。但并不是所有情况都需要封装为对象,如果参数较少,只有几个,则用显示的声明的形式更为直观和方便。可自行斟酌。


关于POJO和Model的命名


1.png

1.png

POJO即Plain Ordinary Java Object,是普通Java对象的意思,所有封装属性的对象的类统称POJO,所有POJO类都需要遵守一定的规则:


实现Serializable接口

属性私有

实现setter&getter方法,由开发工具生成,后面我们可以通过依赖自动非显示的生成

重写hashCode方法,equals方法,toString方法,这个也和前一条一样,由开发工具完成,不需要开发者操心


关于命名,后缀需要添加对应的业务领域的名字,如xxxVO,XXXDTO,且后缀需要大写。

目录
相关文章
|
2天前
|
JSON 前端开发 Java
spring mvc Rest风格
spring mvc Rest风格
8 0
|
1天前
|
前端开发 Java 数据库连接
Java与Spring框架的深度融合
Java与Spring框架的深度融合
|
1天前
|
IDE Java 开发工具
Spring Boot:加速Java后端开发的现代化利器
在当今快速迭代的软件开发环境中,Spring Boot 已成为Java后端开发领域的首选框架。作为Spring家族的一员,它以“约定优于配置”的设计理念,极大地简化了传统Spring应用的配置和部署过程,让开发者能够更加专注于业务逻辑的实现。本文将探讨Spring Boot的核心优势,并通过一个简单的示例展示如何快速启动一个基于Spring Boot的Java Web应用。
10 1
|
15小时前
|
消息中间件 Java Kafka
教程:Spring Boot集成Kafka Streams流处理框架
教程:Spring Boot集成Kafka Streams流处理框架
|
22小时前
Spring-MVC的注解扫描-spring17
Spring-MVC的注解扫描-spring17
|
1天前
|
缓存 Java Maven
深入解析Google Guava库与Spring Retry重试框架
深入解析Google Guava库与Spring Retry重试框架
5 0
|
1天前
|
Java 数据处理 数据库
深入解析Spring Batch:企业级批处理框架的技术之旅
深入解析Spring Batch:企业级批处理框架的技术之旅
9 0
|
1天前
|
前端开发 Java 开发工具
如何在Spring Boot框架下实现高效的Excel服务端导入导出?
ArtifactId:是项目的唯一标识符,在实际开发中一般对应项目的名称,就是项目根目录的名称。 Group Id,Artfact Id是保证项目唯一性的标识,一般来说如果项目打包上传至maven这样的包管理仓库中。在搜索你的项目时,Group Id,Artfact Id是必要的条件。 Version:版本号,默认0.0.1-SNAPSHOT。SNAPSHOT代表不稳定的版本,与之相对的有RELEASE。 Project type:工程的类型,maven工程还是gradle工程。 Language:语言(Java,Kotlin,Groovy)。
|
1天前
|
缓存 Java 数据库连接
spring中注解驱动事务框架的源码
spring中注解驱动事务框架的源码
5 0
|
2天前
|
JSON 前端开发 Java
spring mvc 请求与响应
spring mvc 请求与响应
6 0