快速学习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集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏