微信搜索【大奇测试开】,关注这个坚持分享测试开发干货的家伙。

认识Spring Boot

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

特性

  • 独立的 Spring 应用程序
  • 直接嵌入 Tomcat、Jetty 或 Undertow等容器(无需部署 WAR 文件)
  • 提供 'starter' 核心简化构建配置
  • 尽可能多的自动配置 Spring 和 3rd 方库
  • 提供已集成的产品功能,例如指标、健康检查和外部化配置
  • 完全无需代码生成,无需 XML 配置

Starter

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

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

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

  1. 本篇适合有一点JAVA语言基础的小白,以前写过Spring Boot项目的可忽略看后续开发篇文章
  2. 系列文章不做技术展开和深入讲解,只做到应用的层面的讲解
  3. 示例和项目开发需要提前搭建好依赖环境
    1. 环境: Java JDK 1.8.x 、Maven 3.x
    2. 数据库:Myql 5.7+
    3. 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按钮。

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

mvnw spring-boot:run

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

编写代码

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

package 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方法请求,并给定一个接口路径。

package com.daqi.ideademo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; @RestController
public 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

关于后续更多进展和分享欢迎持续关注公众号或博客。

Mock平台2-Java Spring Boot框架基础知识的更多相关文章

  1. spring boot框架相关知识

    1.spring:一个轻量级的控制反转和面向切面的容器,专业的开发Web项目的开源框架.    spring mvc:是基于spring的mvc框架,属于一个企业WEB开发的MVC框架,涵盖面包括前端 ...

  2. Java Spring boot 多商户入驻 外卖|跑腿|代驾 Uniapp版本

    技术说明: 源码下载:https://www.yuanmahy.com/8357.html 开发环境:jdk1.8,mysql5.7,node 9.4,redis6.2,npm6.9 开发工具:前端使 ...

  3. 基于Spring Boot框架开发的一个Mock

    背景:在项目后端接口开发还未完成,我们无法进行自动化接口用例的调试,希望与开发同步完成接口自动化用例的编写及调试,待项目转测后,可以直接跑自动化用例,提高测试效率. 选用的maven + Spring ...

  4. Spring Boot框架开发的Java项目在CentOS7上的部署

    需求:上级拿来一份Spring Boot框架开发的Java项目代码让我在服务器上运行起来,只说了一句该框架是自带了Tomcat(不用重新安装Tomcat),一份代码下有两个项目(一个管理端项目,一个用 ...

  5. 在Spring Boot框架下使用WebSocket实现消息推送

    Spring Boot的学习持续进行中.前面两篇博客我们介绍了如何使用Spring Boot容器搭建Web项目(使用Spring Boot开发Web项目)以及怎样为我们的Project添加HTTPS的 ...

  6. Java Spring Boot VS .NetCore (四)数据库操作 Spring Data JPA vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  7. Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  8. (Spring Boot框架)快速入门

    Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一 ...

  9. [原创]Spring boot 框架构建jsp web应用

    说明 Spring boot支持将web项目打包成一个可执行的jar包,内嵌tomcat服务器,独立部署 为支持jsp,则必须将项目打包为war包 pom.xml中设置打包方式 <packagi ...

随机推荐

  1. 微信 CLI 工具正式发布 v1.0

    前言 为了让开发者可以更加方便舒适地获取到微信开发的资源,今天我们基于 Senparc.Weixin SDK 正式发布了基于 .NET 的微信 CLI 工具:Weixin.CLI(v1.0). 通过 ...

  2. Codeforces Round #739 (Div. 3)

    A. Dislike of Threes 简单的水题,预处理即可 AC_CODE #include <bits/stdc++.h> using namespace std; templat ...

  3. css自定义属性(css变量)

    感谢原文作者:Kuku殿下 原文链接:https://segmentfault.com/a/1190000015948538 前言 刚开始的"css变量",经扩展之后,称为&quo ...

  4. root登陆530 Permission denied、530 Login incorrect解决

    感谢大佬:https://blog.51cto.com/3241766/2316986?source=dra 背景:由于云平台上22端口不对外放开,sftp使用不了,故选择ftp服务 操作系统版本: ...

  5. Mysql批量删除和修改某个前缀的表

    1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...

  6. java创建自定义类的对象数组

      1 public class Student{ 2 static int number = 0; // 静态变量的访问可以不用创建类的实例就可就可使用< 类名.属性 >的方法访问 3 ...

  7. Mac 配置Apache Php编译ssl错误解决

    终端 Php编译错误解决 //错误信息 unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) i ...

  8. shell脚本一键部署——Redis(直接复制执行)亲测100% 有效

    首先所需软件包拖进目录,然后编辑一个脚本,复制一下脚本,source执行一下即可 #!/bin/bash echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式== ...

  9. CSS3自定义滚动条样式-webkit内核

    自定义滚动条实现 此部分针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分 2. ::-webkit ...

  10. Solution -「ZJOI 2020」「洛谷 P6631」序列

    \(\mathcal{Description}\)   Link.   给定一个长为 \(n\) 的非负整数序列 \(\lang a_n\rang\),你可以进行如下操作: 取 \([l,r]\),将 ...