SpringBoot
文章平均质量分 61
光滑的秃头
星星之火,可以燎原。
天道酬勤,勇往直前。
展开
-
SpringBoot配置多个不同Thymeleaf模板位置
最近开发当中需要在SpringBoot配置多个不同Thymeleaf位置,特此记录下相关过程。原创 2023-11-28 17:24:00 · 918 阅读 · 0 评论 -
Springboot初始化自动生成数据库表结构
记录下Springboot初始化自动生成数据库表结构的配置:Spring.sql.init相关的配置信息和注意事项。原创 2023-10-28 16:40:57 · 961 阅读 · 0 评论 -
Springboot应用整合Prometheus+Grafana进行自定义指标监控
Springboot应用整合Prometheus+Grafana进行自定义指标监控最近需要监控接口的请求数据P90,P99,平均耗时,接口参数包含userId的接口请求数据等等第一步 创建一个springboot项目pom文件 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId>原创 2022-05-09 14:33:40 · 3762 阅读 · 3 评论 -
Springboot启动后执行方法的四种方式
最新需要在项目启动后立即执行某个方法,然后特此记录下找到的四种方式注解@PostConstruct使用注解@PostConstruct是最常见的一种方式,存在的问题是如果执行的方法耗时过长,会导致项目在方法执行期间无法提供服务。@Componentpublic class StartInit {//// @Autowired 可以注入bean// ISysUserService userService; @PostConstruct public void i原创 2021-10-22 15:44:15 · 22578 阅读 · 1 评论 -
SpringBoot+Mybatis-plus:使用枚举接收参数并返回数据
文章目录SpringBoot+Mybatis-plus:使用枚举接收参数并返回数据枚举的好处枚举使用场景枚举在项目中的使用第一种形式第二种形式实体类的枚举字段保存到数据库,并且返回时自动映射到枚举属性上实体类枚举字段返回给前端实体类枚举字段接收前端参数注意事项说明SpringBoot+Mybatis-plus:使用枚举接收参数并返回数据最近项目当中大量使用到枚举,特此记录下项目当中使用枚举的好处,场景,使用方式。枚举的好处可读性高, 易理解统一参数类型,避免传参错误线程安全,全局唯一,无法修改原创 2021-04-16 15:07:38 · 7238 阅读 · 2 评论 -
Springboot2.x处理Long类型返回前端精度丢失以及LocalDateTime统一返回时间戳
最近在返回给前端数据的时候遇到了1 Long类型返回前端精度丢失 2LocalDateTime统一返回时间戳方便前端统一处理的问题,记录下解决方案。代码如下环境:springboot2.x ,JDK8import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.databind.DeserializationCon原创 2021-01-06 17:10:23 · 831 阅读 · 0 评论 -
springboot2.0整合OAuth2并使用JWT作为token。
之前实现了Springboot之Security前后端分离登录 刚好这段时间有空,乘机整合下OAuth2。记录下当中遇到的问题和处理方式。什么是OAuth2?OAuth 2.0 的一个简单解释具体代码实现POM文件 <dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spr原创 2020-12-02 18:39:38 · 4194 阅读 · 4 评论 -
SpringBoot使用@ControllerAdvice配合ResponseBodyAdvice记录接口请求参数以及返回数据
最近在项目当中需要记录接口请求参数以及返回数据,本来是打算通过自定义切面来实现的,后来发现可以使用@ControllerAdvice配合ResponseBodyAdvice来进行记录数据,特此记录,完整代码如下:/** * @author yichaofan * @since 2020/11/20 12:47 * @apiNote 统一打印请求参数和返回参数日志 */@ControllerAdvice@Slf4jpublic class ResponseBodyAnalysis imple原创 2020-11-20 17:16:43 · 2914 阅读 · 6 评论 -
Springboot之Security前后端分离登录
Springboot之初识Spring Security什么是Spring Security初识Security具体代码实现1 引入Security包2 创建Security配置类3 创建UserInfo类4 实现UserDetailsService提供一个登录接口什么是Spring SecuritySpring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。Spring Security是一个框架,致力于为Java应用程序提供身原创 2020-09-14 16:57:43 · 5468 阅读 · 8 评论 -
Springboot读取自定义属性之集合(list,数组)
Springboot读取自定义属性之集合(list,数组)如何读取配置文件当中自定义的集合属性1 创建自定义数组配置2 通过实体类接收配置文件获取配置属性在项目当中使用总结springboot配置文件的读取操作很常见,之前也写过简单的读取配置文件的笔记SpringBoot学习之DAY_02 springboot配置文件信息读取这篇笔记主要记录下最近在读取配置文件当中的心得和新知识点吧。如何读取配置文件当中自定义的集合属性很少在配置文件当中自定义数组属性,最近刚好遇到并记录下1 创建自定义数组配置原创 2020-09-11 17:08:36 · 3800 阅读 · 0 评论 -
SpringBoot整合Druid+全局事务管理+Mybatis-Plus+代码生成器
文章目录SpringBoot整合Druid+全局事务管理+Mybatis-Plus+代码生成器整合Druid连接池全局事务管理器整合Mybatis-Plus整合代码生成器总结SpringBoot整合Druid+全局事务管理+Mybatis-Plus+代码生成器在springboot开发当中,Druid,全局事务管理,代码生成器都是非常实用的,特此记录下整合的过程整合Druid连接池springboot默认的连接池是:HikariCP,但是Druid的功能相对来说比较全面。数据库连接池了解和常用连接原创 2020-07-06 16:10:02 · 3200 阅读 · 2 评论 -
springboot之aop切面execution表达式,@args,@annotation
最近在使用springboot进行切面编程的时候,发现定义切面点有很多种方式,每种方式有每种方式的特点。特此记录execution表达式基本语法格式为:execution(<修饰符模式>?<返回类型模式><方法名模式>(<参数模式>)<异常模式>?)除了返回类型模式,方法名模式和参数模式外,其它项都是可选的。例如: @Pointcut("execution(public * cn.hjljy.*.controller..*.*(..))"原创 2020-06-07 19:58:30 · 13492 阅读 · 0 评论 -
Springboot之swagger-bootstrap-ui(knife4j)
最近在网上看到一个比较好的swagger-ui,swagger自带的UI不是很友好。特此记录下整合过程,并梳理下swagger相关的知识什么是swagger?简单来说就是解放程序员,让程序员少些不必要的API文档,只需要在项目当中定义好接口,返回实体等然后通过swagger暴露出来就可以自动生成接口相关的API文档!!!swagger-bootstrap-ui(knife4j)swagger是由自己自带的UI的,不过在对比两个之后,感觉swagger-bootstrap-ui现已变更为knife4j原创 2020-06-05 16:14:44 · 3141 阅读 · 0 评论 -
SpringBoot2.2.x版本添加CORS跨域访问支持
看项目代码看到一个CORS跨域访问配置类,特此了解下什么是CORS跨域,以及Springboot 2.2.x版如何支持CORS跨域请求!!!什么是CORSCORS 全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 AJAX 跨域请求资源的方式,支持现代浏览器,IE支持10以上。详见:什么是CORSSpringboot开启CORS跨域访问支持第一种方式:@Configurationpublic class CorsFilterConfiguration {原创 2020-06-04 16:23:11 · 1846 阅读 · 0 评论 -
Springboot之Actuator服务监控
最近在项目当中,启动了多个微服务项目,想着如何监控启动的项目,然后就找到了Actuator这个东西!!!什么是ActuatorSpring Boot Actuator 官方文档Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production. You can choose to manage and mo原创 2020-06-03 15:15:28 · 2296 阅读 · 0 评论 -
springboot之线程池ThreadPoolTaskExecutor以及@Async异步注解
前言最近项目当中有需求,要进行异步的处理,需要使用到线程池,很久没有使用到线程池了,一来是做JAVAweb开发基本上很少用到异步处理,二来是发现有的老项目里面,线程和线程池的使用比较混乱,有好几个线程池,有的线程池是通过spring管理的,有的是自己创建的,然后有的地方是直接创建的线程。所以这里记录下自己在项目当中如何优雅的使用线程池!避免项目当中到处都是线程池!!!SpringBoot整合ThreadPoolTaskExecutor线程池ThreadPoolExecutor:这个是JAVA自己实现的原创 2020-05-14 23:38:35 · 6105 阅读 · 6 评论 -
Springboot之分组验证以及自定义参数验证
springboot之前端参数验证学习完简单的验证之后发现基本能满足百分之80的验证需求,接下来深入学习下验证。分组验证分组验证需要使用到@Validated 这个注解,是spring基于@Valid注解新增的功能。所以基本上在controller层接收参数的时候,可以用@Validated注解替换@Valid。不过@Validated注解不能放在类中的字段上面,而@Valid注解可以放在类中的字段上面。所以如果类中的某个字段不是基础类型,但是里面的参数需要校验的话,需要在字段上面加上@Valid 代原创 2020-05-11 19:12:27 · 1998 阅读 · 3 评论 -
Springboot之前端参数验证
@NotNull 限制必须不为null@NotEmpty 验证注解的元素值不为 null 且不为空(字符串长度不为0、集合大小不为0)@NotBlank 验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格@Pattern(value) 限制必须符合指定的正则表达式@Siz...原创 2020-04-27 19:08:52 · 1115 阅读 · 1 评论 -
通过springboot拦截器实现博客文章的自定义URL地址
最近写博客,看见博客系统可以自定义文章的路径。很好奇这个是如何实现的,就想着自己来实现一下。实现思路1 既然是自定义的url地址,那么肯定要保存到数据库。2 拦截所有的请求,然后判断请求的地址是不是一个博文的自定义url地址。3 如果是就重定向或者转发到博文统一展示页(重定向或者转发时将博文的ID传过去)。4 博文统一展示页就通过博文的id就可以展示文章内容了。拦截器学习既然...原创 2020-03-12 21:40:37 · 1281 阅读 · 0 评论 -
springboot 文件的批量上传和批量下载
springboot 文件的批量上传和批量下载之前学习并使用过文件的单个上传:springboot学习日志之DAY08文件上传功能最近写程序过程当中需要使用到批量上传和批量下载,批量和单个文件的上传下载还是有很多的区别的。特此记录文件批量上传HTML代码: <input type="file" name="md" id="article_md" multiple="multiple...原创 2020-02-09 18:02:07 · 3063 阅读 · 2 评论 -
JAVA发送短信(SMS服务)和SpringBoot发送邮件实现
前言账号注册的时候通常会选择短信注册或者邮箱注册,那么如何在JAVA当中实现短信的发送和邮件的发送呢?SMS服务实现发送短信通常都是接入第三方的SMS服务,例如:阿里云SMS,百度云SMS,七牛云SMS等等。但是上面的都要钱,虽然不多。不过腾讯云注册会送100条免费短信。所以作为一名个人开发者直接使用腾讯云的进行测试就可以了。实际开发的话,根据情况在进行选择就可以。阿里云SMS接入指南:...原创 2020-01-06 16:09:56 · 2145 阅读 · 0 评论 -
springboot整合MongoDB
什么是MongoDB?MongoDB是为现代应用程序开发人员和云时代构建的基于文档的通用分布式数据库MongoDB Windows下的安装网上安装教程一大堆,不过官方网站的教程最详细:官网windows下安装MongoDB安装完毕之后如果不出错的话,就可以在计算机的服务里面找到一个:MongoDB Server 的服务。MongoDB 数据库成功安装之后,可以通过安装目录bin下的...原创 2019-12-19 22:16:34 · 110 阅读 · 0 评论 -
SpringBoot学习日志之DAY07springboot整合shiro权限框架
什么是shiro? Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。shiro官方网站:http://shiro.apache.org/springboot整合shiro第一步:在pom文件当中引入对应的jar<shiro.version>1.4.0</shiro.version> ...原创 2018-12-24 15:16:36 · 295 阅读 · 0 评论 -
springboot学习日志之DAY06thymeleaf整合UEditor图片上传问题
什么是UEditor富文本编辑器UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。springboot整合Ueditor 获取UEditor插件 在百度UEditor官方网站获取到对应的插件:https://ueditor.baidu.com/website/index.htm...原创 2018-12-04 16:04:09 · 502 阅读 · 0 评论 -
SpringBoot学习日志之DAY05springboot默认首页设置
目录什么是默认首页配置springboot默认首页方式一:通过controller指定RequestMapping路径为(/)方式二:通过自定义配置类实现WebMvcConfigurer进行设置方式三:直接将index.html页面放在templates下面就行了方式四 直接将index.html文件放在static目录下面什么是默认首页 在启动WEB项目之后...原创 2018-11-19 11:54:26 · 697 阅读 · 0 评论 -
SpringBoot学习日志之_DAY04整合前端模板thymeleaf
SpringBoot学习日志之_DAY04整合前端模板thymeleaf目录SpringBoot学习日志之_DAY04整合前端模板thymeleaf什么是thymeleaf之前一直是采用的JSP作为前端模板,但是在springboot当中是推荐Thymeleaf当中前端模板的, Thymeleaf是一个跟 Velocity、FreeMarker 类似的模板引擎。官方教程:htt...原创 2018-10-19 16:18:10 · 176 阅读 · 0 评论 -
SpringBoot学习日志之DAY_03数据库连接之MYBATIS
SpringBoot整合MYBATIS+MYSQL目录SpringBoot整合MYBATIS+MYSQL简单介绍创建项目1.简单介绍mybatis是目前开发过程当中使用非常普遍的持久层框架,有许多的mybatis插件例如:分页插件,Mybatis Plugin插件等等大大的提高了生产效率。mysql也是目前非常普遍的数据库。2.创建项目首先在pom里面添加对应的依赖...原创 2018-10-19 11:18:55 · 151 阅读 · 0 评论 -
SpringBoot学习之DAY_02 springboot配置文件信息读取
SpringBoot学习之DAY_01 springboot介绍以及创建一个简单的springboot工程 在SpringBoot创建项目成功启动之后,可以发现在resources下面是没有XML文件的,只有一个application.properties配置文件,这是因为Spring Boot “约定优于配置”。所以想要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Bo...原创 2018-07-14 17:00:23 · 254 阅读 · 0 评论 -
springboot学习日志之DAY10日志配置
SpringBoot之日志配置 springboot日志配置文档介绍: 官方文档地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html 国内大神翻译的中文文档:https://blog.csdn.net/Quincunti...原创 2019-01-11 16:12:11 · 184 阅读 · 0 评论 -
springboot学习日志之DAY08文件上传功能
文件上传在项目当中非常常见。基本上就是通过流进行文件的传送,在springboot当中文件上传也是非常简单。 第一步 pom文件内容 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifact...原创 2019-01-02 15:12:33 · 334 阅读 · 0 评论 -
Springboot学习日志之DAY11全局异常处理——ajax请求和普通web请求处理以及404错误和代码错误处理
为什么需要全局异常处理在web项目开发当中,异常处理是一个过不去的坎,之前的ssm项目,都是在代码上进行try catch进行捕获处理,也就导致一个controller里面基本上每个方法都需要try catch进行异常捕获,代码重复性很高。但是在springboot当中,提供全局异常处理的方式,我们只需要写一个异常处理就可以对所有的异常进行捕获到,不需要写很多的try catch来处理。...原创 2019-01-14 16:17:12 · 536 阅读 · 0 评论 -
SpringBoot学习日志之DAY09AOP日志开发
SpringBoot之AOP日志开发 第一步:在springboot当中引入对应的依赖 <!-- springboot AOP 支持--> <dependency> <groupId>org.springframework.boot</groupId&...原创 2019-01-10 10:44:40 · 172 阅读 · 0 评论 -
springboot学习日志之DAY14整合Webscoket技术
什么是Webscoket简单来说就是一个基于TCP的持久化的网络通信协议。主要作用就是:服务端可以主动推送信息给客户端,不需要客户端重复的向服务端发请求查询。具体详细说明:https://www.zhihu.com/question/20215561 (PS:写的是真的简单易懂)springboot整合Webscoket开发环境JDK版本1.8springboot版本2.1.0开发...原创 2019-01-26 15:47:55 · 245 阅读 · 0 评论 -
springboot学习日志之DAY12定时任务(基于Scheduled)
项目环境说明:基于springboot 2.1.0版 jdk1.8 开发工具IDEA基于Scheduled的定时任务基于Scheduled的定时任务,在实现了一个简单的定时任务之后,发现使用起来是非常的方便快捷。一个简单的定时任务第一步:在启动类上添加注解:@EnableScheduling@SpringBootApplication@ServletComponent...原创 2019-01-16 15:02:00 · 588 阅读 · 0 评论 -
SpringBoot学习日志之DAY13整合定时任务(基于Quartz框架实现定时任务的暂停,启动,单次执行和修改)
什么是Quartz?一个定时任务调度框架,简单易用,功能强大。如果项目当中对定时调度要求较高,使用这个框架非常合适。springboot整合Quartz定时调度框架...原创 2019-01-23 15:47:13 · 930 阅读 · 0 评论 -
Redis学习日志之SpringBoot2.0+整合Redis(基于Redission)
Redis学习日志之Linux下的安装昨天完成了redis的简单安装,今天就在项目当中简单整合使用一下整合环境说明JDK1.8版本idea开发工具springboot2.1.0版本为什么选择Redission?springboot2.0之前的版本默认支持的是Jedis 但是在2.0后换成了Lettuce。java连接redis最多的就是Jedis,Redisson,Lettuce这...原创 2019-03-14 11:28:17 · 21159 阅读 · 0 评论 -
springboot拦截器自动注入为null解决办法和具体原因分析
最近在使用springboot拦截器的过程当中,发现无法注入service,提示NPE错误问题相关代码springboot拦截器注册方式:@Configurationpublic class MyWebMvcConfigurer implements WebMvcConfigurer { @Override public void addInterceptors(Interce...原创 2019-06-11 17:37:04 · 4725 阅读 · 5 评论 -
SpringBoot学习之DAY_01 springboot介绍以及创建一个简单的springboot工程
今天开始正式学习springboot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有...原创 2018-06-20 19:57:35 · 238 阅读 · 0 评论