Spring Boot WebAPI 服务入门

网友投稿 673 2022-05-30

Spring Boot可以说,是当前Java领域非常重要的一个框架,可以非常方便的进行Java Web应用的开发。官网提供的一套脚手架可以快速进行项目模板的创建,并引入依赖库。项目初始模板可以访问网站:https://start.spring.io 即可,具体如下所示:

此界面提供了多种配置参数,可以宣称依赖管理的工具是Maven还是Gradle,可以宣传开发的语言是Java\Kotlin还是Groovy。另外,可以配置项目的打包方式,是Jar还是War,并选择JDK的版本,这里选择JDK 8。右边可以添加合适的依赖库,这里添加Spring Web,MySQL和PostgreSQL的驱动库。参数确定后,单击【GENERATE】按钮生成项目模板代码包。

其次,可以将下载的项目模板代码包解压,并用IDEA打开项目,其中的pom.xml代码如下:

4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.1 com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web mysql mysql-connector-java runtime org.postgresql postgresql runtime org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin

默认情况下,IDEA中的Maven仓库会指向官方的地址,这可能会导致有些Jar包下载的比较慢,或者说有时候会出现无法下载的情况。针对这种情况,建议是配置maven的本地仓库,并设置国内的镜像,比如华为的镜像或者阿里的镜像等。如果有些库还是没有,可以放在本地,并在pom.xml中进行引用。

在项目文件中,添加一个控制器文件,这个控制器controller包位于DemoApplication类的内部,这样SpringBoot可以自动进行类扫码,并加载,否则,可能需要单独进行配置,指定SpringBoot到哪里进行类扫描,不然会出现定义的controller api无法调用的情况。具体的项目结构如下图所示:

Spring Boot WebAPI 服务入门

HomeController.java是一个典型的Java 后台代码,SpringBoot利用框架提供的注解,非常方便的进行Web服务的开发工作,大大简化了后台代码的开发难度,从而提高了开发效率。示例文件的代码如下:

package com.example.demo.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class HomeController { @RequestMapping("/login") public String Login(@RequestParam("username") String username, @RequestParam("password") String password) { if ("admin".equals(username) && "12345".equals(password)){ return "1"; }else { return "0"; } } }

根据官方文档的说法,@RestController相当于@Controller和@ResponseBody的组合,返回JSON数据时,不需要在方法前加@ResponseBody,但用@RestController注解时,不能返回jsp,html页面。@RequestMapping代码请求时候的API路径映射,这个是唯一的,可以供前台AJAX进行调用。这里类上的@RequestMapping注解和方法上的@RequestMapping组合起来构成一个API的调用路径。@RequestParam("username") String username表示一个Request参数,参数名为username,类型是String,并赋值给变量username。这样前台调用的时候,参数名需要和后台参数名保持一致。

下面介绍一种将本地的IP地址映射到公网IP的方法,Localtunnel是一个可以让内网服务器暴露到公网上的开源项目,它可以通过NPM来全局安装:

npm install localtunnel -g 映射 lt --port 8080

它在每次开启映射外网的网址时,一般都是不同的。示例如图所示:

然后打开浏览器输入对应的公网网址即可,如果能按预期返回结果,那么说明web API逻辑基本正确:

这对于用鸿蒙OS编写测试代码,进行后台服务器通信来说,是非常重要的手段。由于使用远程模拟器,因此,本地开启的服务不能在远程模拟器上进行访问,因此无法测试访问Web API等测试用例。

Ajax Java Spring Boot

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Web三剑客-HTML笔记
下一篇:Webots和ROS2使用说明(部分翻译)
相关文章