快速学习Spring Boot

2024-06-23 12:58
文章标签 spring boot 学习 快速 java

本文主要是介绍快速学习Spring Boot,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spring Boot项目搭建

从今天开始,小博将撰写Spring Boot系列的博客。由于是菜鸟自撰的备忘录型博客,大神请无视,不喜勿喷。

使用的开发环境是:

  • IDEA 2017.2
  • JDK 1.8
  • Spring Boot 1.5.9

将涉及到的技术栈有:

  • JPA
  • MyBatis
  • Thymeleaf
  • Druid
  • Redis
  • RabbitMQ
  • MongoDB
  • Quartz

第一篇主题为项目搭建及简单开发与测试,点击下载完整代码

①新建项目
1

②选择Spring Initializr
2

③填写项目相关信息(本系列博客以Maven为例)
3

④选择依赖的核心组件DevTools
4

⑤选择依赖的Web组件Web
5

⑥填写项目名并创建新项目
6

⑦src/main/java为源码文件包,src/mian/resources为配置文件包,src/test/java为测试程序包
7

⑧一般来说,Spring Boot项目主要包括如下几个包和文件(图中可见的Java文件和properties文件均自动生成)
com.chung.springbootdemo包下:

  • comm包:公共类,工具类等

  • controller包:控制器

  • entity包:实体类

  • repository包:数据库访问

  • service:业务

  • ServletInitializer.java文件:Servlet容器初始化

  • SpringbootdemoApplication.java文件:项目的启动类
    resources包下:

  • static包:静态资源如JS、CSS、图片等

  • templates包:页面模板

  • application.properties文件:项目配置信息
    最外层的pom.xml文件用于配置项目依赖包及其他配置
    8

至此,一个Spring Boot项目搭建好了。下面进项简单的Web开发及测试。

1 简单Web开发:HelloWorldController内容如下,其中@RestController意为Controller内的方法都以json格式输出,如果为@Controller则代表输出为页面。因此不用再另外配置Jackson。写完HelloWorldController后,运行主程序(本例中为SpringbootdemoApplication.java),打开浏览器访问http://localhost:8080/hello?name=charles,即可看到内容:Hello World! charles。

注:如果遇到Process finished with exit code 0,可以将pom.xml文件中这段注释

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope>
</dependency>
@RestController
public class HelloWorldController {@RequestMapping(value = "/hello")public String helloWorld(String name) {return "Hello World! " + name;}
}

2 单元测试:在Spring Boot中,可使用MockMvc进行web测试,MockMvc内置了很多工具类和方法,可以模拟get以及post请求,并且打印返回的内容。其中在类上加@SpringBootTest,系统会自动加载SpringBoot容器,在平时我们就可以注入bean来做局部业务测试。MockMvcRequestBuilders可以进行get或post请求,使用print()方法会将请求及相应的过程都打印出来(见以下第二段代码块内容),其中 Body = Hello World! XXX ,可见请求成功。

@SpringBootTest
public class TestHello {private MockMvc mockMvc;@Beforepublic void setUp() {mockMvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();}@Testpublic void testHello() throws Exception {MockHttpServletRequestBuilder accept = MockMvcRequestBuilders.post("/hello?name=XXX").accept(MediaType.APPLICATION_JSON_UTF8);mockMvc.perform(accept).andDo(print());}
}
MockHttpServletRequest:HTTP Method = POSTRequest URI = /helloParameters = {name=[XXX]}Headers = {Accept=[application/json;charset=UTF-8]}
Handler:Type = com.chung.springbootdemo.controller.HelloWorldControllerMethod = public java.lang.String com.chung.springbootdemo.controller.HelloWorldController.helloWorld(java.lang.String)
Async:Async started = falseAsync result = null
Resolved Exception:Type = null
ModelAndView:View name = nullView = nullModel = null
FlashMap:Attributes = null
MockHttpServletResponse:Status = 200Error message = nullHeaders = {Content-Type=[application/json;charset=UTF-8], Content-Length=[16]}Content type = application/json;charset=UTF-8Body = Hello World! XXXForwarded URL = nullRedirected URL = nullCookies = []
Process finished with exit code 0

3 热部署:可能有时候一丁点改动都需要重启项目,这个时候,我们可以使用SpringBoot的热部署特性(需要依赖主键Devtools)。主要有以下四个步骤,①在dependency中加入optional属性,并设为true。②在plugin中配置另外一个属性fork,并设为true。③在IDEA中勾选Build project automatically,如下第一张图。④按快捷键ctrl+shift+a输入Registry,勾选选项compile.automake.allow.when.app.running,如下第一张和第二章图。
至此,已经开启了SpringBoot热部署,可以尝试修改代码,发现刷新页面即可,再也不需要重新部署代码了。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><!--加入这行--><scope>runtime</scope>
</dependency>
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--加入以下三行--><configuration><fork>true</fork></configuration></plugin></plugins>
</build>

9

10

11

至此,就完成了Spring Boot项目的搭建和简单Web开发与测试、以及设置IDEA的热部署。可以看出,使用Spring Boot可以非常方便快速的搭建项目,而不用关心框架之间的兼容性、版本适用性等各种问题。想使用任何东西,仅仅添加一个配置就可以,所以Spring Boot非常适合构建微服务。

本系列的下一篇博客,小博将记录自己的Spring Boot Web开发速体验备忘录,学习永无止境!一起加油!


这篇关于快速学习Spring Boot的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1087220

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

Java五子棋之坐标校正

上篇针对了Java项目中的解构思维,在这篇内容中我们不妨从整体项目中拆解拿出一个非常重要的五子棋逻辑实现:坐标校正,我们如何使漫无目的鼠标点击变得有序化和可控化呢? 目录 一、从鼠标监听到获取坐标 1.MouseListener和MouseAdapter 2.mousePressed方法 二、坐标校正的具体实现方法 1.关于fillOval方法 2.坐标获取 3.坐标转换 4.坐

Spring Cloud:构建分布式系统的利器

引言 在当今的云计算和微服务架构时代,构建高效、可靠的分布式系统成为软件开发的重要任务。Spring Cloud 提供了一套完整的解决方案,帮助开发者快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器等)。本文将探讨 Spring Cloud 的定义、核心组件、应用场景以及未来的发展趋势。 什么是 Spring Cloud Spring Cloud 是一个基于 Spring

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

java8的新特性之一(Java Lambda表达式)

1:Java8的新特性 Lambda 表达式: 允许以更简洁的方式表示匿名函数(或称为闭包)。可以将Lambda表达式作为参数传递给方法或赋值给函数式接口类型的变量。 Stream API: 提供了一种处理集合数据的流式处理方式,支持函数式编程风格。 允许以声明性方式处理数据集合(如List、Set等)。提供了一系列操作,如map、filter、reduce等,以支持复杂的查询和转

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备