快速学习Spring Boot

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

本文主要是介绍快速学习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

相关文章

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

Java中Integer128陷阱

《Java中Integer128陷阱》本文主要介绍了Java中Integer与int的区别及装箱拆箱机制,重点指出-128至127范围内的Integer值会复用缓存对象,导致==比较结果为true,下... 目录一、Integer和int的联系1.1 Integer和int的区别1.2 Integer和in

SpringSecurity整合redission序列化问题小结(最新整理)

《SpringSecurity整合redission序列化问题小结(最新整理)》文章详解SpringSecurity整合Redisson时的序列化问题,指出需排除官方Jackson依赖,通过自定义反序... 目录1. 前言2. Redission配置2.1 RedissonProperties2.2 Red

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.