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,且后缀需要大写。

目录
相关文章
|
13天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
6天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
18 4
|
8天前
|
缓存 监控 Java
如何运用JAVA开发API接口?
本文详细介绍了如何使用Java开发API接口,涵盖创建、实现、测试和部署接口的关键步骤。同时,讨论了接口的安全性设计和设计原则,帮助开发者构建高效、安全、易于维护的API接口。
29 4
|
13天前
|
消息中间件 NoSQL Java
springboot整合常用中间件框架案例
该项目是Spring Boot集成整合案例,涵盖多种中间件的使用示例,每个案例项目使用最小依赖,便于直接应用到自己的项目中。包括MyBatis、Redis、MongoDB、MQ、ES等的整合示例。
61 1
|
7天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
14 0
|
8天前
|
Java API Android开发
kotlin和java开发优缺点
kotlin和java开发优缺点
21 0
|
3月前
|
安全 前端开发 Java
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择
随着企业应用复杂度提升,Java Spring框架以其强大与灵活特性简化开发流程,成为构建高效、可维护应用的理想选择。依赖注入使对象管理交由Spring容器处理,实现低耦合高内聚;AOP则分离横切关注点如事务管理,增强代码模块化。Spring还提供MVC、Data、Security等模块满足多样需求,并通过Spring Boot简化配置与部署,加速微服务架构构建。掌握这些核心概念与工具,开发者能更从容应对挑战,打造卓越应用。
43 1
|
5月前
|
前端开发 JavaScript Java
计算机java项目|springboot基于spring框架的电影订票系统
计算机java项目|springboot基于spring框架的电影订票系统
|
3月前
|
Java 数据库连接 数据库
【Java 第十一篇章】Spring 框架介绍
Spring 是广泛用于企业级 Java 开发的开源框架,提供轻量级解决方案,助力构建灵活、可维护的应用。核心组件包括 IOC 容器、AOP、MVC、JDBC/ORM、事务处理及远程调用。依赖注入(DI)是其核心特性之一,允许容器自动管理对象间的依赖关系,提升代码的可测试性和解耦。面向切面编程(AOP)则支持将横切关注点(如日志、事务)与业务逻辑分离,促进代码复用和关注点分离。Spring 的 IoC 容器负责对象的创建和管理,简化对象的生命周期管理。Spring 框架具备低侵入性设计,易于整合主流技术栈。
22 0
|
3月前
|
JavaScript 前端开发 网络协议
WebSocket在Java Spring Boot+Vue框架中实现消息推送功能
在现代Web应用中,实时消息提醒是一项非常重要的功能,能够极大地提升用户体验。WebSocket作为一种在单个TCP连接上进行全双工通信的协议,为实现实时消息提醒提供了高效且低延迟的解决方案。本文将详细介绍如何在Java Spring Boot后端和Vue前端框架中利用WebSocket实现消息提醒功能。
153 0