SpringBoot 学习笔记
文章平均质量分 91
SpringBoot 学习笔记
南淮北安
好好学习
展开
-
SpringBoot 学习一篇文章就够了(珍藏版)
文章目录一、学习目录二、扩展目录一、学习目录一篇文章带你认识 SpringBoot一篇文章带你快速入门 SpringBoot一篇文章带你学习 SpringBoot 原理分析一篇文章带你搞懂 SpringBoot 的配置文件二、扩展目录...原创 2020-10-27 15:10:25 · 1342 阅读 · 0 评论 -
一篇文章带你使用 SpringBoot 创建 war 包
创建项目时选择 war 包方式war 包的特点需要放到 Tomcat 中才能运行,所以可以看到,项目创建成功,Tomcat 也自动部署好了这里的 scope 为 provided 形式,意思是部署时就不用打包 Tomcat 了,不然容易和部署的环境重复,导致出错,只在开发时使用这个 Tomcat 配置另外就是 启动类这里多了个 ServletInitializer:同样,如果你想把 jar 改成 war 包也需要添加这个 ServletInitializer 这个配置,再修改 Tomcat 为原创 2020-10-27 15:08:13 · 1101 阅读 · 2 评论 -
一篇文章带你认识 SpringBoot 打包成的可执行 jar,不能被其他项目依赖
Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?文章目录一、Springboot 项目的默认插件配置二、打包三、两种 jar 包的比较1. admin-0.0.1-SNAPSHOT.jar 可执行的 jar 结构2. admin-0.0.1-SNAPSHOT.jar.original 不可执行的 jar 结构四、一次性打包两个 jar一、Springboot 项目的默认插件配置转载 2020-10-27 14:47:12 · 3657 阅读 · 9 评论 -
一篇文章带你使用 SpringBoot 实现监控信息的可视化和邮件报警
前面对于 Endpoints 的学习,监控信息返回的是 JSON 数据,很不友好,本篇讲述如何实现这些监控信息的可视化文章目录一、建立 Admin 项目二、建立微服务 Client三、邮件报警功能的实现一、建立 Admin 项目用来采集其他项目的监控信息,可视化显示出来(1)加入依赖(2)启动类加入注解:@EnableAdminServer(3)启动项目进行访问:二、建立微服务 Client(1)选择依赖加入(2)配置 application.properties#配置应用端口和原创 2020-10-27 10:55:09 · 1282 阅读 · 1 评论 -
一篇文章带你深入 SpringBoot 中的 Endpoints 中的端点(health/info)
文章目录一、Health 端点二、info 端点1. 基本配置2. 使用 java 代码来配置3. 添加 Git 版本管理信息4. 添加项目构建信息:build-info一、Health 端点可以看到,health 默认显示的信息非常少,默认是 never,可以选择认证时显示全部发现此时,显示了 硬盘的状况,因为 SpringBoot 会根据 classpath 的依赖情况,会自动添加一些健康指示,只要加依赖就会显示对应的健康指示器比如我这里加入 redis 依赖: <depend原创 2020-10-27 10:10:51 · 5664 阅读 · 4 评论 -
一篇文章带你入门 SpringBoot 中的 Endpoints
文章目录一、认识 Endpoint二、简单示例三、引入 springsecurity 保护端点四、Health 端点一、认识 EndpointSpring Boot Actuator 提供了一些 actuator endpoint 来实现对你的应用程序进行监控和交互,比如在项目出错时,自动报警,监控内容,运行状况等,提前预警。官方参考 API:点击参考二、简单示例(1)加入依赖(2)除了 shutdown 端口默认是关闭,其他端口都是默认开启的需要明白,端点开启并不意味着端点暴露,开启不一原创 2020-10-26 20:19:09 · 5284 阅读 · 1 评论 -
一篇文章带你解决 Unable to infer base url. This is common when using dynamic servlet registra
我这里使用的是2.10.2 版本的 swagger,这个版本将由于支持了WebFlux,所以之前的@EnableSwagger2就移除掉了,变为@EnableSwagger2WebMvc以及@EnableSwagger2WebFlux <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifa.原创 2020-10-24 09:30:43 · 23278 阅读 · 17 评论 -
一篇文章带你搞定 SpringBoot 整合 Swagger2
前后端分离后,维护接口文档基本上是必不可少的工作。一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2就是其中之一,至于其他类似功能但是却收费的软件,这里就不做过多介绍了。文章目录一、创建工程二、Swagger2 配置三、简单示例四、中文配置案例五、在 Se转载 2020-10-23 19:56:51 · 2838 阅读 · 11 评论 -
一篇文章带你使用 SpringBoot 实现定时任务
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot 中两种定时任务的实现方式。文章目录一、第一种方式:@Scheduled二、第二种方式:Quartz一、第一种转载 2020-10-22 16:55:56 · 2901 阅读 · 7 评论 -
一篇文章带你搞定使用 SpringBoot 发送邮件
邮件发送其实是一个非常常见的需求,用户注册,找回密码等地方,都会用到,使用 JavaSE 代码发送邮件,步骤还是挺繁琐的,Spring Boot 中对于邮件发送,提供了相关的自动化配置类,使得邮件发送变得非常容易文章目录一、认识邮件协议二、前期准备三、项目创建1. 加入依赖一、认识邮件协议我们经常会听到各种各样的邮件协议,比如 SMTP、POP3、IMAP ,那么这些协议有什么作用,有什么区别?我们先来讨论一下这个问题。SMTP 是一个基于 TCP/IP 的应用层协议,江湖地位有点类似于 HTTP,转载 2020-10-20 14:40:00 · 3665 阅读 · 17 评论 -
一篇文章带你使用 SpringBoot 整合 RabbitMQ
文章目录一、认识 RabbitMQ二、安装 RabbitMQ三、SpringBoot 整合 RabbitMQ1. 加入依赖2. 配置 application.properties一、认识 RabbitMQRabbitMQ 简介以 AMQP 协议:(1)RabbitMQ 是开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ 底层是用了 Erlang 语言来编写的,并且 RabbitMQ 是基于 AMQP 协议的.(2)RabbitMQ 不仅仅可以使用 java原创 2020-10-11 08:52:39 · 6274 阅读 · 26 评论 -
一篇文章待你解决SpringBoot整合 rabbitmq出现 Failed to check/redeclare auto-delete queue(s)
文章目录一、问题描述二、解决问题一、问题描述docker 搭建好 rabbitmq 之后,浏览器访问没有问题:本以为可以顺顺利利的使用 SpringBoot 整合了,但是检查了好几遍一直出现:2020-10-10 20:40:36.211 ERROR 13008 --- [ntContainer#0-1] o.s.a.r.l.SimpleMessageListenerContainer : Failed to check/redeclare auto-delete queue(s).Cause原创 2020-10-10 20:49:25 · 5472 阅读 · 7 评论 -
一篇文章带你使用 SpringBoot 整合 ActiveMQ
文章目录一、ActiveMQ 介绍二、ActiveMQ 安装三、SpringBoot 整合 ActiveMQ1. 加入依赖配置2. 配置 application.properties3. 配置队列4. 配置 Message 对象5. 配置 JmsComponent6. 测试一、ActiveMQ 介绍MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有 ActiveMQ,RabbitMQ,kafka。ActiveMQ 是 Apache下的开源项目,完全支持JMS1.1和J2EE1.原创 2020-10-06 17:01:04 · 1984 阅读 · 8 评论 -
一篇文章带你使用 SpringBoot 搞定基于WebSocket 的在线单聊实现
前面我们已经学习了 WebSocket 的在线群聊实现 本篇文章主要来学习使用 WebSocket 实现消息的一对一发送。文章目录一、前期配置二、配置 Chat 类三、配置 WebSocket四、配置控制器五、配置 SecurityConfig六、配置 前端页面 onlineChat.html七、测试一、前期配置前面依赖部分和 WebSocket 的在线群聊实现 的一致,不过这里还需要添加 Spring Security 的依赖: <dependency> <原创 2020-10-05 20:38:49 · 1995 阅读 · 0 评论 -
一篇文章带你使用 SpringBoot 搞定 基于WebSocket 的在线群聊实现
文章目录一、添加依赖二、配置 WebSocketConfig三、配置 Message 类和 Chart 类四、配置控制器 GreetingController五、设置前端页面 chat.html六、登录测试一、添加依赖加入前端需要用到的依赖: <dependency> <groupId>org.webjars</groupId> <artifactId>sockjs-client</artifac原创 2020-10-05 17:32:36 · 4391 阅读 · 13 评论 -
一篇文章带你解决 SpringBoot+SpringSecurity 不拦截静态资源
待解决这里还存在问题,如果有看到的大神,可以留言一起学习正常不拦截资源,我查阅资料,基本都是重新 config 方法即可:package org.yolo.securitylogin.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.con原创 2020-09-12 20:32:28 · 5327 阅读 · 5 评论 -
一篇文章带你搞定 SpringBoot 整合 Ehcache
文章目录一、前期配置二、添加 ehcache.xml三、测试使用一、前期配置加入依赖:从搜索到 maven 中找到 ehcache依赖库,加入pom 配置文件:<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.0</version></depend原创 2020-09-09 15:25:23 · 1296 阅读 · 5 评论 -
一篇文章带你搞定 Spring Cache 整合 Redis
文章目录一、前期配置二、缓存使用(1)@CacheConfig(2)@Cacheable(3)自定义 keyGenerator(4)@CacheEvict(5)@CachePut三、总结一、前期配置首先W建一个 Springboot 工程,引入依赖:Spring Web,Spring cache,redis,Spring Security配置 application.propertiesspring.redis.host=192.168.176.128spring.redis.port=637原创 2020-09-09 11:07:14 · 2593 阅读 · 4 评论 -
一篇文章带你搞定 SpringBoot 中的单元测试
文章目录一、前期配置二、service 测试三、Controller 测试四、Json 测试一、前期配置建立 SpringBoot项目时,会自动加入单元测试依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId>原创 2020-09-07 16:41:53 · 1848 阅读 · 5 评论 -
一篇文章带你搞定SpringBoot不重启项目实现修改静态资源
学习了:SpringBoot 的热部署了解了通过热部署可以快速实现类加载,但是对于静态资源变化,并不会触发项目重启。本篇文章主要解决静态资源的访问问题。文章目录一、通过配置文件控制静态资源的热部署二、通过 LiveReload 插件控制静态文件的热部署一、通过配置文件控制静态资源的热部署在配置文件 application.properties 中添加:#表示从这个默认不触发重启的目录中除去static目录spring.devtools.restart.exclude=classpath:/st原创 2020-09-06 20:14:41 · 1463 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 中的热部署 devtools
文章目录一、前期配置二、测试使用三、热部署的原理一、前期配置创建项目时,需要加入 DevTools 依赖二、测试使用(1)建立 HelloController@RestControllerpublic class HelloController { @GetMapping("/hello") public String hello(){ return "hello devtools"; }}对其进行修改:然后不用重新运行,重新构建即可:只加载变原创 2020-09-05 21:26:56 · 584 阅读 · 0 评论 -
一篇文章带你搞定 MongoDB 实现 REST
文章目录一、前期准备二、SpringBoot 实现 MongoDB 的 REST三、使用 Postman 测试使用一、前期准备首先使用 docker 搭建好 MongoDB:一篇文章带你搞定使用 docker 搭建 MongoDB使用 Robo3T 连接创建的 docker:二、SpringBoot 实现 MongoDB 的 REST(1)创建 SpringBoot 项目,加入相关依赖:其他配置信息可参考:一篇文章带你使用 SpringBoot 整合 MongoDB三、使用 Postma原创 2020-09-03 21:50:07 · 1401 阅读 · 2 评论 -
一篇文章带你搞定 create connection SQLException, url: jdbc:mysql://10.15.16.63:3306/restful, errorCode 1130
文章目录一、错误描述二、解决办法一、错误描述二、解决办法出现这个问题的原因可能有两个(1)首先确定自己的mysql 版本和 pom 文件中的 mysql-connector-java 版本是否一致比如我的是mysql 5.5.40 ,需要的 mysql-connector-java 版本是 5.1.27对于版本对应可以参考:可参考:mysql-connector-java 各版本官网(2)检查自己的 application.properties 配置文件里的信息,是否写对比如我原创 2020-09-02 16:20:59 · 9464 阅读 · 2 评论 -
一篇文章带你解决 IDEA 每次新建项目 maven home directory 总是改变
重装个系统,各种问题,idea 也出现各种问题装了个新版的 idea 2020 2.x 版本的,不知道咋回事,其他都好使,就是创建 SpringBoot 项目时:加载 pom.xml 总是出错,原因就是,新建立的项目 maven home directory 总是乱,没有安装 设置的默认方式我试了,改当前项目的,不好使该默认设置,不好使,网上的其他方法也试了,很奇怪,就是不好使。so,最后的解决办法,就是卸载这个版本的 idea,重新下载了个 2020.1.x 版本的 idea然后,然后就好原创 2020-09-01 21:58:23 · 14228 阅读 · 51 评论 -
一篇文章带你搞定 IDEA 创建 SpringBoot 项目一直 reading pom.xml 直到卡死
很神奇,下载了最新版本的 IDEA 之后其他创建 java 项目或者 maven 项目都没啥问题,但是建立 SpringBoot 项目 就出现这种问题折腾了好久需要首先确保 maven 的配置已经配置成功了问题描述:解决办法:(1)查看电脑的 hosts 文件,看看是否存在 127.0.0.1 localhost,或者其他情况也指向 127.0.0.1(2)重启网络,然后重启电脑:输入:netsh winsock reset重要提示:这样重启后,也需要等会加载,第一次需要点时间,第原创 2020-09-01 20:16:20 · 3416 阅读 · 4 评论 -
一篇文章带你使用 SpringBoot 整合 MongoDB
我们已经学习过:一篇文章带你搞定使用 docker 搭建 MongoDB所以,本篇文章在此基础上使用 SpringBoot 完成对 MongoDB 的整合文章目录一、前期准备二、使用 MongoRepository 实现三、使用 MongoTemplate 实现一、前期准备(1)创建 SpringBoot 工程选择相应依赖:(2)配置 application.properties:信息与上篇文章建立的 MongoDB 容器配套spring.data.mongodb.host=192.168.2原创 2020-08-27 23:01:44 · 968 阅读 · 1 评论 -
一篇文章带你搞定 SpringBoot 中 使用 nginx 实现 session 共享
学习过:Nginx 学习学习过:一篇文章带你搞定 SpringBoot 中使用 redis 实现 session 共享本篇文章主要是在此基础上,利用 nginx 实现自动配置文章目录一、环境搭建1. docker 搭建 redis 容器2. docker 搭建 jdk 容器3. docker 搭建nginx 容器二、引入 Nginx 实现 session 共享三、总结一、环境搭建1. docker 搭建 redis 容器就创建一个容器的情况下,一般有默认端口和主机对应,所以不用设置也行,但是如果原创 2020-08-22 18:55:05 · 2001 阅读 · 9 评论 -
一篇文章带你搞定 SpringBoot 中使用 redis 实现 session 共享
文章目录一、为什么要引入 session 共享二、配置 Redis 实现 session 共享一、为什么要引入 session 共享参考雨哥的文章:http://springboot.javaboy.org/2019/0604/springboot-springsession在传统的单服务架构中,一般来说,只有一个服务器,那么不存在 Session 共享问题,但是在分布式/集群项目中,Session 共享则是一个必须面对的问题,先看一个简单的架构图:在这样的架构中,会出现一些单服务中不存在的问题,原创 2020-08-22 18:33:23 · 4397 阅读 · 5 评论 -
一篇文章带你学会 SpringBoot 整合 Redis
文章目录一、Redis 环境准备二、SpringBoot 引入 redis 并测试三、分析 SpringBoot 中 redis 的自动化配置类一、Redis 环境准备学习过:学习 Redis 一篇文章就够了学习过:Docker 的应用部署(Mysql,Tomcat,Nginx,Redis)所以这里通过 docker 搭建 redis,实现与 SpringBoot的连接连接成功:二、SpringBoot 引入 redis 并测试SpringBoot2.1.5及之后,远程连接redis,需要引原创 2020-08-19 18:29:13 · 1621 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 去除自动化配置
项目启动后,会自动配置WebConfig 配置类,所以这里可以直接原创 2020-07-08 09:09:39 · 1068 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 整合 AOP
对于 AOP 的知识在 Spring 学习章节已经进行过学习:一篇文章帮你搞定 Spring本篇文章主要讲述如何在 SpringBoot 中使用 AOP示例场景:比如项目已经上线,某个环节运行速度特别慢,需要对其单独打印日志测试一下,挨个去改很显然不靠谱,因此可以借助AOP,将该段代码嵌入到业务中,检测完成后,再移出掉即可。文章目录一、前期配置二、前置/后置/异常/最终通知的实现三、环绕通知的实现一、前期配置同时需要我们pom 中引入 aop 依赖<dependency>原创 2020-07-07 17:28:37 · 405 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 加载 XML配置
文章目录一、问题引入二、SpringBoot 加载 XML配置一、问题引入SpringBoot 的主要思想是习惯大于配置在实际应用开发过程中也会存在不得不添加配置文件的情况,例如集成其他框架或者需要配置一些中间件等,在这种情况下,就需要引入自定义的 xml 配置文件。二、SpringBoot 加载 XML配置(1)普通的 UserService:public class UserService { public String getUser(){ return "test原创 2020-07-07 14:49:05 · 995 阅读 · 0 评论 -
一篇文章带你解决 SpringBoot 中 favicon 失效,不显示问题
文章目录一、常规思路二、其他思路一、常规思路正常显示我们已经知道:一篇文章带你搞定 SpringBoot 自定义欢迎页和网页图标 favicon如果正常设置不好使常规的思路是:(1)旧版的SpringBoot:application.properties ,新版已经失效spring.mvc.favicon.enabled=false(2)无法添加上述配置的,通过静态页面设置:HTML:<head> <link rel="icon" href="/favicon.i原创 2020-07-07 11:37:01 · 4024 阅读 · 1 评论 -
一篇文章带你搞定 SpringBoot 自定义欢迎页和网页图标 favicon
文章目录一、SpringBoot 自定义项目启动欢迎页二、SpringBoot 自定义 favicon标题一、SpringBoot 自定义项目启动欢迎页已经分析过SpringBoot 的资源访问路径:一篇文章带你从源码解析 SpringBoot 中的静态资源存放位置所以对于欢迎页 index.html 可以存放,查找顺序是先从 static 目录下查找,没有再从 templates 目录下查找:这里不需要加Controller 控制,这是 SpringBoot 默认的配置从 index 查找此时原创 2020-07-07 10:39:50 · 1822 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 中拦截器的使用
文章目录一、问题引入二、SpringBoot 中的拦截器的实现一、问题引入前面已经学习过SpringMVC 中的拦截器:一篇文章带你搞定 SpringMVC 中的拦截器本文主要实现对于 SpringBoot 中的拦截器的实现二、SpringBoot 中的拦截器的实现(1)自定义拦截器 MyInterceptor/** * 自定义拦截器 */@Componentpublic class MyInterceptor implements HandlerInterceptor { /原创 2020-07-06 15:54:51 · 397 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 中的类型转换器
通过一个前端和后端日期的类型转换,来说明 SpringBoot 的类型转换器的使用文章目录一、问题引入二、自定义类型转换器一、问题引入@Controllerpublic class HelloController { @GetMapping("/hello") public void getHello(Date birth){ System.out.println(birth); }}通过前端传入日期参数,发现报错:可以发现,是类型转换错误二、自原创 2020-07-06 10:14:49 · 1289 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 配置路径映射
文章目录一、通过 Controller 视图解析映射二、自定义 WebMvcConfig 实现路径映射一、通过 Controller 视图解析映射此时我们无法直接访问到 hello.html ,可以通过 控制器实现路径映射跳转:@Controllerpublic class HelloController { @GetMapping("/hello") public String getHello(){ return "hello"; }}但是如果我原创 2020-07-06 07:23:21 · 1503 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 整合 Web 基础组件
Web 有三大基本组件,分别是:Servlet,Listener,Filter。正常来说一旦我们用了框架,这三个就用不上了,Listener可能还会用到,Servlet被Controller代替了,Filter被拦截器代替了。但是可能在一些特殊的场景下不得不使用这三个基本组件,那么在Spring Boot中要如何去引用呢?下面我们来看一下:文章目录一、整合 Servlet二、整合 Filter三、整合 Listener四、修改启动类一、整合 Servlet首先自定义一个MyServlet继承HttpS转载 2020-07-05 15:22:30 · 452 阅读 · 0 评论 -
一篇文章带你从源码分析 SpringBoot 的异常处理
文章目录一、起因二、源码分析三、自定义异常数据四、自定义异常视图一、起因我们已经知道如果动态页面和静态页面同时定义了异常处理页面,例如 classpath:/static/error/404.html 和 classpath:/templates/error/404.html 同时存在时,默认使用动态页面即完整的错误页面查找方式应该是这样:发生了400错误--》查找动态 400.html 页面--》查找静态 400.html --》查找动态 4xx.html--》查找静态 5xx.html至于为什么原创 2020-07-05 09:04:20 · 423 阅读 · 0 评论 -
一篇文章带你搞定 SpringBoot 上传文件(单文件/多文件/Ajax上传)
文章目录一、前期配置二、单文件上传三、多文件上传四、Ajax 实现文件上传五、属性配置一、前期配置同样不需要额外配置添加一个 web 功能模块即可二、单文件上传上传页面 index.html 位置放在了 static 目录下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head原创 2020-07-04 15:09:19 · 882 阅读 · 0 评论