springboot2.x基础教程
SpringBoot从零开始,讲解实际项目中SpringBoot使用技巧和源码分析,做到知其然与知其所以然。
程序员众推
微信关注订阅号:程序员众推
分享SpringBoot、SpringCloud、JVM、VUE全栈知识系列文章。
个人网站:https://www.codehome.vip
展开
-
springboot项目打包瘦身
默认情况下,Spring Boot 项目发布时会将项目代码和项目的所有依赖文件一起打成一个可执行的 jar 包。但如果项目的依赖包很多,那么这个文件就会非常大。这样每次即使只改动一点东西,就需要将整个项目重新打包部署,我们将依赖 lib 从项目分离出来,这样每次部署只需要发布项目源码即可。瘦身打包配置springboot默认使用spring-boot-maven-plugin 来打包,这个插件会将项目所有的依赖打入项目jar 包里面,将打包插件替换为 maven-jar-plugin,并拷贝依赖到 .原创 2020-10-03 07:44:51 · 186 阅读 · 0 评论 -
springboot2.x基础教程:动手制作一个starter包
上一篇博客介绍了springboot自动装配的原理。springboot本身有丰富的spring-boot-starter-xx集成组件,这一篇趁热打铁加深理解,我们利用springboot自动装配的机制,制作一个属于自己的starter包。制作一个starter包思路 这一篇博客我制作一个上传图片第三方图床的starter,集成常见的第三方图床sm.ms、imgur、github图床等。 本教程不会具体的讲解图床上传相关的代码,而是主要分析封装此starter的思路。首先安装spring.原创 2020-09-12 09:13:27 · 584 阅读 · 1 评论 -
springboot2.x基础教程:自动装配原理与条件注解源码分析
spring Boot采用约定优于配置的方式,大量的减少了配置文件的使用。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。当springboot启动的时候,默认在容器中注入许多AutoCongfigution类。在我们加入spring-boot-stareter-xx时,XXXAutoConfiguration类根据对应的条件,自动选择装配对应的Bean实例注入IOC容器中。先说结论SpringBoot启动的时候加载主配置类,开启了自动配置功能@EnableAutoCo.原创 2020-09-10 13:11:10 · 174 阅读 · 0 评论 -
springboot2.x基础教程:springmvc参数绑定注解今天彻底搞清楚
在编写SpringBoot项目中我们通常在Controller层使用@RequestParam、@RequestBody等注解接收前端请求参数。我们应该怎么使用各种注解,这片文章带大家把springmvc参数绑定使用彻底搞清楚。文章导航Http请求报文请求方法请求URL请求头部请求数据常见的ContentType1、application/x-www-form-urlencoded2、multipart/form-data3、application/json4、text/xmlSpringMVC参数.原创 2020-09-01 23:10:56 · 286 阅读 · 0 评论 -
springboot2.x基础教程:SpringCache缓存抽象详解与Ehcache、Redis缓存配置实战
在计算机发展史中一台计算机只需要外部存储器就能运行,但是在实际中磁盘的读取数据的速度往往跟不上CPU的运算速度,因此引入的内存作为CPU和外部存储器之间的缓冲区域。在项目开发过程数据库数据的查询速度远远比不上数据在内存中的访问速度,因此我们通常使用缓存来提高热点数据的访问速度,缓存可谓是计算机科学中最伟大的发明。文章导航缓存基本知识缓存命中率缓存策略缓存设置参数Spring注解缓存缓存相关注解集成Ehcache缓存引入依赖配置Ehcache缓存配置配置Redis缓存配置引入依赖Redis配置缓存注解.原创 2020-08-29 23:37:16 · 215 阅读 · 0 评论 -
springboot2.x基础教程:集成spring-data-jpa
Spring Data是Spring 社区的一个子项目,主要用于简化数据(关系型&非关系型)访问,其主要目标是使得数据库的访问变得方便快捷。目前支持的关系型与非关系型数据有Spring data JPA、Mongodb、Redis、JDBC、Elasticsearch…具体可查看Spring官网JPA全称为Java Persistence API(Java持久层API),它是Sun公司在JavaEE 5中提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具,来管理Java.原创 2020-08-27 06:32:27 · 168 阅读 · 0 评论 -
springboot2.x基础教程:集成mybatis最佳实践
前面文章介绍过SpringBoot结合Jpa实现对数据库的操作。今天介绍下SprigBoot集成Mybatis的相关知识点。Mybatis作为一个半自动化的ORM框架,根据条件动态拼接SQL,是其一大优点。贴合原生SQL的写法,方便开发人员灵活的编写复杂的SQL语句。SpringBoot集成Mybatis的配置还是相当简单的,教程并且会给出常见针对Mysql数据CURD、分页、批量操作的写法。本文导航SpringBoot配置Mybatis引入依赖配置数据源配置Mybatis参数增删改查最优写法单元.原创 2020-08-27 06:32:02 · 181 阅读 · 0 评论 -
springboot2.x基础教程:@Scheduled开启定时任务及源码分析
在项目开发过程中,我们经常需要执行具有周期性的任务,通过定时任务可以很好的帮助我们实现。常见的定时任务有JDK自带的TimeTask,ScheduledExecutorService,第三方的quartz框架,elastic-job等。今天要给大家介绍的是SpringBoot自带的定时任务框架,通过@Scheduled注解就能很方便的开启一个定时任务。Spring Schedule框架功能完善,简单易用。对于中小型项目需求,Spring Schedule是完全可以胜任的。本文导航TimeTask.原创 2020-08-27 06:31:34 · 432 阅读 · 0 评论 -
springboot2.x基础教程:过滤器和拦截器详解
在springboot web项目开发过程中,我们通常需要对请求与响应的内容请求拦截处理,如进行请求日志记录、UA检查、用户权限验证、非法内容过滤等功能,这时候过滤器与拦截器就派上用场。本文带大家讲解springboot如何使用过滤器与拦截器以及两者之间的区别。本文导航过滤器SpringBoot使用过滤器拦截器过滤器与拦截器区别过滤器Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。过滤器是一个实现了 javax.servlet.Filter 接口的 Java.原创 2020-08-27 06:31:13 · 308 阅读 · 0 评论 -
springboot2.x基础教程:@Enable*原理
上一篇springboot2.x基础教程:@Async开启异步任务我们使用了@EnableAsync注解来启用异步执行。SpringBoot框架中@Enable*注解有很多例如:@EnableAspectJAutoProxy、@EnableCaching、@EnableAutoConfiguration、@EnableSwagger2这一章讲讲它背后的原理。本文导航几个典型的@Enable*注解@EnableScheduling@EnableAsync@EnableAspectJAutoProxy@.原创 2020-08-26 22:22:27 · 161 阅读 · 0 评论 -
springboot2.x基础教程:@Async开启异步任务
在开发项目中通常我们有场景需要开启异步任务。比如在用户注册成功时,需要发放一些优惠券。此时为了不让这些额外的操作影响用户的注册流程,我们通常开启一个线程异步去执行发放优惠券逻辑。通常我们需要自己定义一个线程池,开启一个线程任务。在Springboot中对其进行了简化处理,自动配置一个 org.springframework.core.task.TaskExecutor类型任务线程池,当我们开启@EnableAsync注解时,在需要执行异步任务的方法添加@Async注解时,该方法自动会开启一个线程去执行。.原创 2020-08-26 22:21:30 · 310 阅读 · 0 评论 -
springboot2.x基础教程:JRebel实现SpringBoot热部署
当我们开发SpringBoot过程中通常比较频繁的修改代码,每次都要重启项目等待很长才能生效。Idea的Jrebel插件能够实现修改了代码的某一部分,不需要再次启动程序,随时修改,随时生效。接下来就给大家贴出Idea工具安装、破解JRebel这款神器的详细图文教程。本文导航Idea配置JrebelIdea安装Jrebel插件破解Jrebel首先本地运行jrebel-crack.jar在Idea的Help菜单中找到JRebel,Activation填入本地生成的破解地址最后最后,还要进行下简单的配置测试.原创 2020-08-26 22:20:28 · 596 阅读 · 0 评论 -
springboot2.x基础教程:日志配置
项目的开发过程中,开发人员对于日志一定不会陌生。日志能够记录程序运行的轨迹,输出软件运行中的关键信息,辅助我们排查与定位问题,优化程序运行性能,监控程序运行状态,不可不谓重要。SpringBoot项目的spring-boot-starter默认引用spring-boot-starter-logging,其中底层采用logback日志框架,默认零配置即可使用日志记录功能。在讲解springboot日志配置之前先简单谈谈JAVA日志有关的基础知识。本文导航日志记录的时机Java日志框架SpringBo.原创 2020-08-26 22:18:28 · 300 阅读 · 0 评论 -
springboot2.x基础教程:单元测试
单元测试用于测试单个代码组件,并确保代码按预期方式工作。单元测试由开发人员编写和执行。大多数情况下,会使用JUnit或TestNG这样的测试框架。测试用例通常在方法级别编写,并通过自动化执行。Spring Boot提供了一些注解和工具去帮助开发者测试他们的应用。在讲springboot单元测试之前,先简单介绍下软件测试的类型(从开发角度来说),跟如何写好一个单元测试。本文导航软件测试类型单元测试要点SpringBoot集成单元测试引入依赖依赖关系常用注解说明断言常见使用方法测试方法测试API接口.原创 2020-08-26 22:17:28 · 181 阅读 · 0 评论 -
springboot2.x基础教程:配置文件详解
当使用Spring Initializr构建springboot项目时,会自动在src/main/resources下产生application.properties文件。今天我们就来聊聊SpringBoot的配置文件。本文导航配置文件的作用配置文件的基本使用数字,字符串,布尔获取对象、Map写法与获取List、Set、Array获取总结下两种注解区别多环境配置配置文件优先级项目内部配置文件外部配置配置文件的作用SpringBoot采用“习惯优于配置”的理念,项目中存在大量的配置,采用默认配置,让.原创 2020-08-26 22:16:05 · 153 阅读 · 0 评论 -
springboot2.x基础教程:jsr303接口参数校验,结合统一异常拦截
JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Valida.原创 2020-08-26 22:14:21 · 316 阅读 · 0 评论 -
springboot2.x基础教程:接口实现统一格式返回
在SpringBoot项目中经常会涉及到前后端数据的交互,目前比较流行的是基于 json 格式的数据交互。但是 json 只是消息的格式,其中的内容还需要我们自行设计。不管是 HTTP 接口还是 RPC 接口保持返回值格式统一很重要,这将大大降低 前后端联调的成本。本文导航定义的接口具体格式提供的R类型工具类状态码设计定义的接口具体格式{ #返回状态码 "code":integer类型, #返回信息描述 "msg":string, #返回值 "data":object}提供的R类.原创 2020-08-26 22:11:29 · 194 阅读 · 0 评论 -
springboot2.x基础教程:Swagger详解给你的接口加上文档说明
相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。SpringBoot集成Swagger能够通过很简单的注解把接口描述清楚,生成可视化文档页面。原生的Swagger-ui界面很粗糙,这里用knife4j-spring-ui替代。本文导航一个好的HTTP接口文档描述SpringBoot集成Swagger项目引入依赖Spr.原创 2020-08-26 22:09:06 · 264 阅读 · 0 评论 -
springboot2.x基础教程:快速开始
本文导航Idea新建工程选择Spring Initializr项目使用Maven构建,指定Jdk版本为1.8,修改项目GroupId,ArtifactId选择SpringBoot版本,这里选择当前最新的2.3.2,勾选SpringWeb依赖至此下一步打开项目,下载好项目依赖,就可以正常启动SpringBoot项目这里是SpringBoot2.x教程第一篇开始,开发工具为idea+JDK1.8+Maven,学习前提大家也提前安装配置好开发环境Spring官方提供了非常方便的工具Spring Initia原创 2020-08-26 22:06:23 · 189 阅读 · 0 评论