首页 > 编程语言 >测试开发【Mock 平台】02 基础:Java Spring Boot 框架知识

测试开发【Mock 平台】02 基础:Java Spring Boot 框架知识

时间:2022-10-08 19:24:48浏览次数:71  
标签:02 Java spring Boot content 开发 Spring starter

https://xie.infoq.cn/article/37e7c39312567cad5db8b4fb6

系列测试开发教程【Mock 平台】为真实的案例,从 0 到 1 重构前后端代码,教你一步步应用 Spring Boot 和 Antd React 框架实战一个测试工具平台,希望找这方面资料的同学,有所学有所成,一起加油!

认识 Spring Boot

在 N 年前的大学时代想要开发一个 Web 服务使用的还是 SSH 框架(struts+spring+hibernate)尤其是 Spring 这块需要进行大量的配置工作,为了简化应用搭建和开发过程出现了 Sprint Boot 全新开源框架,且功能更加丰富,性能上更加稳定健壮,还提供了大量开箱即用(out-of-the-box)的依赖模块,使用起来更加简单高效,尤其是这几年在互联网微服务的应用上热度很高。

特性

  • 独立的 Spring 应用程序

  • 直接嵌入 Tomcat、Jetty 或 Undertow 等容器(无需部署 WAR 文件)

  • 提供 'starter' 核心简化构建配置

  • 尽可能多的自动配置 Spring 和 3rd 方库

  • 提供已集成的产品功能,例如指标、健康检查和外部化配置

  • 完全无需代码生成,无需 XML 配置

Sprint Boot 真正少量配置甚至零配置使用各种组件的核心,它将日常应用研发中的各种场景都抽取出来做成独立的 starter(启动器),使用的时只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。当然也可以自定义修改配置,除了官方 Starter 还有第三方技术提供,更可以自己开发。

 

总之在个人开发体验上来说,在如此简单高效+JAVA 语言稳定开发的特性下,对于独立 Server 的服务应用开发相比 Python 我更愿意用 Spring Boot 框架进行开发,下面就参考官方给出一个 Demo 实例。

 

不过开始实践之前还需要注意以下几点

  1. 本篇适合有一点 JAVA 语言基础的小白,以前写过 Spring Boot 项目的可忽略看后续开发篇文章

  2. 系列文章不做技术展开和深入讲解,只做到应用的层面的讲解

  3. 示例和项目开发需要提前搭建好依赖环境

  • 环境: Java JDK 1.8.x 、Maven 3.x

  • 数据库:Myql 5.7+

  • IDE:IntelliJ IDEA / Eclipse

搭建一个 API 项目

项目创建

初始化一个 Spring Boot 应用两种方式,官方 和 IDE

 

方式一:官方初始化项目包

Step1. 通过访问 https://start.spring.io/ 选择开发选项和添加依赖包一键生成应用包。

 

注意本地 JDK 装的是 1.8.X 版本,所有 Java 的选项需要改成 8,然后点击 GENERATE 就会自动下载一个按照选项配置生成的项目包。

 

Step2. 解压到某路径下,打开 IDEA 导入项目,选择到 pom.xml -> Open As Project -> Trust Project 导入包后等待 maven 依赖下加载完成。

 

方式二:IDEA 创建 Sprint Boot

新建一个项目(如果 IDEA 是最新版,请在上一个项目中 File->Close project 才会进入到项目管理窗口),New Project -> Spring Initializr 选项内容如图所示。

 

下一步 Next 选择版本和添加依赖,点击 Finish 完成创建。

 

最终两种方式都会创建出如下的结构的 Spring Boot 应用项目

 

目录结构说明

|-/src/mian/java主开发代码和程序入口

|-/src/mian/resources 配置或静态文件资源区

|-/src/mian/resources/application.properties默认属性配置文件

|-/src/test 测试代码和测试初始化入口

|-pom.xml应用 Maven 等配置文件

 

依赖包说明

  • spring-boot-starter-web开发 Web 应用的模块

  • spring-boot-starter-actuator 程序监控器模块

  • spring-boot-starter-test 默认引用 测试模块 如 JUnit

  • spring-boot-starter 默认引用核心模块,如果引用了 starter-web 此依赖自动包含在其中,可以不在项目中显示引用。

 

实际开发中还会为创建不同模式的目录结构比如 MVC,其他的依赖包添加也都会像图中选中部分一样方式随时添加即可。

 

项目运行

依赖全部初始化完成后,其实暂时不需要编写任何代码就能运行,直接点击 IDEA 的工具栏 Run 或 Debug 按钮。

 

sh 或通过 Terminal 执行 Maven 命令行运行应用。

 
mvnw spring-boot:run
      复制代码  

 

因为一开始添加了监控依赖包,所以可以直接访问这个接口 http://localhost:8080/actuator 看到一些可访问的接口,选择 /health 健康检查看下服务状态为 UP 服务正常。

编写代码

接下来开发第一个自己的接口,在/src/mian/java 先创建个资源返回类 HelloEntity.java用于 JSON 格式的数据返回,code表示状态码,content表示内容。

 
// HelloEntity.javapackage com.daqi.ideademo;
public class HelloEntity { private Integer code; private String content; public HelloEntity(Integer code, String content) { this.code = code; this.content = content; } public long getCode() { return code; } public String getContent() { return content; }}
      复制代码  

再创建一个控制器类,用于实现 API Web 服务,识别处理 HTTP 请求通过 @RestController(包含 @Controller 和 @ResponseBody )注解标记为控制类,通过@GetMapping 注解标记 GET 方法请求,并给定一个接口路径。

 
// HelloController.javapackage com.daqi.ideademo;
import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;
@RestControllerpublic class HelloController {
@GetMapping("/api/sayHello") public HelloEntity sayHello(@RequestParam(value = "content") String content){ String respContent = "你好,".concat(content); return new HelloEntity(200, respContent); }}
      复制代码  

@RequestParam指定了一个接口请求 Params 参数,sayHello代码中返回 code=200,content=格式化接收参数的内容字符串。

 

以上内容不必过多纠结,后边的分享中在用到的时候都会进行讲解,这块内容照着做有个整体印象即可。

 

运行和测试

在运行程序之前先对入口程序做个简单解释说明

@SpringBootApplication 是一个复合注释,包含以下内容:

  • @Configuration: 将类标记为应用程序上下文的 bean 源。

  • @EnableAutoConfiguration:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。例如,如果 spring-webmvc 位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置 DispatcherServlet.

  • @ComponentScan: 开启自动扫描功能,告诉 Spring 在包中查的组件、配置和服务等。

其中 main() 方法使用 Spring Boot 的 SpringApplication.run()方法来启动应用程序。

 

接口测试

重新执行 mvnw spring-boot:run或 IDEA 运行按钮,编译重启服务,通过 PostMan 做个接口带参请求测试。

测试结果如图,正确按照预期给予返回结果。

 

至此一个简单的后端服务就搞定了,你学会了吗?如果着急想提前恶补 JAVA Spring Boot 知识的,推荐一个专项学习导航网站,最后希望你学过后有所收获,未来不断成长,喜欢就多多支持实战原创吧!

 

推荐学习

Spring Boot 学习导航 http://springboot.fun/

 

资料参考

[1] https://spring.io/guides/gs/rest-service/

[2] http://www.ityouknow.com/spring-boot.html

  发布于: 2022 年 03 月 19 日阅读数: 163

版权声明: 本文为 InfoQ 作者【MegaQi】的原创文章。

原文链接:【https://xie.infoq.cn/article/37e7c39312567cad5db8b4fb6】。文章转载请联系作者。

标签:02,Java,spring,Boot,content,开发,Spring,starter
From: https://www.cnblogs.com/ceshi2016/p/16769949.html

相关文章

  • idea关于java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver报错的解决办法
     第一步,下载驱动 点击以下链接进入MySQL驱动下载官网 https://dev.mysql.com/downloads/connector/j/ 选择PlatformIndependent   下载第二个(zip格......
  • 【闲话】2022.10.08
    今日考试又寄了怎么凡是Accoders上的考试我都会寄啊今天Winter'SRain先生搞魔改猪国杀然后\(\color{red}{\查\抄\正\着\}\)实在是……太巨了今天挂一张......
  • [JavaSE]数据类型
    数据类型基本数据类型数值数据类型整型byteshortintlonglonga=100L;整数拓展二级制:0b123inti=0b11;输出:3十进制:123inti=11;输出:11八进制:0123......
  • java常用代码
    1/写一个java类充当javabean,一个jsp作为界面,在jsp中使用后台java赋值,需在jsp添加<jsp:useBeanid="user"class="test.UserData"scope="session"/>class引用类所在的......
  • java----小案例,幸运会员,打印正三角
    案例一1.接收一个4位数会员号2.生成随机数并乘以103.算出会员号中的百位数字的数字号与生成的随机数比较4.如果相等则是幸运会员,反之不是packagelearnday5;​import......
  • 2022洛阳师范学院ACM实验室招新竞赛题解
    A萌新签到题目描述欢迎大家来参加2022洛阳师范学院ACM实验室新生赛,我们实验室全体学长学姐从暑假一直期盼着你们的到来。我们的小萌新那么可爱,学长学姐肯定不会为难大......
  • Java8中LocalDateTime与时间戳timestamp的互相转换及ChronoUnit工具类
    Java8中LocalDateTime与时间戳timestamp的互相转换及ChronoUnit工具类importjava.time.*;importjava.time.format.DateTimeFormatter;importjava.time.temporal.Chr......
  • Java服务发起HTTPS请求报错:PKIX path building failed: sun.security.provider.certpa
    Java服务发起HTTPS请求报错:PKIXpathbuildingfailed:sun.security.provider.certpath.SunCertPathBuilderException1.从域名的https导出下载证书文件下载证书第一步是......
  • springboot项目编译时,使用自定义注解类找不到符号
    springboot项目编译时,使用自定义注解类找不到符号Java项目编译时,使用自定义注解类找不到符号Spring-boot项目编辑器:idea问题:编译时找不到符号。项目中用到了自定义注解类......
  • 零基础如何学习入门Java编程
    如何学习在以前大部分人学习都是先去找本书,先看看,再试,要是不懂了在去网上去查,再在继续啃着书本。但现在向书学习和在网上学习这掌握的效果是不同的,要学会用适合自己的学习方......