![](https://img-blog.csdnimg.cn/26767b5ee00c48faabeae665332ca9e1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring 系列
文章平均质量分 82
Spring 相关知识点和实战技巧!
陈皮的JavaLib
我是陈皮,一个在互联网Coding的ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。
展开
-
自定义校验注解 ConstraintValidator
hibernate-validator 中的这些校验注解不一定能满足我们全部的需求,如果校验的逻辑比较复杂,我们可以自定义参数校验器。原创 2021-03-13 15:57:03 · 3715 阅读 · 16 评论 -
同源策略和跨域解决方案 CORS
浏览器的同源策略它会阻止读取来自不同源的资源。同源策略机制主要用于阻止恶意站点读取另一个站点的数据,让用户安全地上网。原创 2022-05-03 10:24:50 · 1274 阅读 · 0 评论 -
Logback 日志添加请求唯一追踪 ID
日志是排查问题的重要依据,但有时日志太多也不容易定位报错信息,不明确哪条日志信息对应哪次请求。如果能给每一个请求的执行链上的所有打印日志加上唯一的追踪标识 ID,那么排查就方便多了。原创 2020-04-29 17:53:00 · 5631 阅读 · 1 评论 -
YAML 详解与实战
它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件。原创 2021-04-13 16:43:51 · 10822 阅读 · 28 评论 -
有感知的 Aware Spring Bean
正常情况下,Spring 中的 Bean 对 Spring 是无感知的,Spring 框架提供了这种扩展能力,能让一个 bean 成为有感知的。原创 2022-04-06 22:11:51 · 1154 阅读 · 0 评论 -
自定义 SpringBoot Banner 图案
我们在启动 SpringBoot 项目时,默认会在控制台打印 Spring logo 和版本号等信息,我们可以自定义这些图案。原创 2021-06-04 23:32:18 · 5794 阅读 · 28 评论 -
计时器工具 StopWatch
StopWatch,它可以用来对程序中代码块,或者方法进行计时,并且支持多阶段计时,以及阶段时间占比等统计,使用起来代码比较简洁,轻量。原创 2022-04-03 09:33:51 · 1583 阅读 · 0 评论 -
Spring HandlerInterceptor 拦截器实战
HandlerInterceptor 是一个允许定制 handler 处理器执行链的工作流接口。我们可以自定义拦截器用于拦截 handlers 处理器(可以理解为 controller 控制层的接口),从而可以添加一些共同的重复性的处理行为(例如接口鉴权,接口日志记录,性能监控等等),而不用修改每一个 handler 的实现。原创 2021-06-30 23:16:31 · 2415 阅读 · 21 评论 -
Spring事件发布与监听机制
我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。文章目录前言ApplicationContext 事件机制ApplicationListener 监听器ApplicationEvent 事件自定义事件和监听器注解式监听器前言Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。Spring 内置了一.原创 2021-06-27 08:50:15 · 1288 阅读 · 23 评论 -
Java Shutdown Hook 场景使用和源码分析
背景如果需要在 Java 进程退出(正常退出和异常退出),做一些额外处理工作,例如资源清理,内存数据持久化到磁盘,或等待线程池处理完任务等等。特别是进程异常挂掉的情况,将一些状态及时保留下来,或等待线程池的任务被处理完,再让进程平滑优雅的退出。Java 中的 ShutdownHook 提供了比较好的方案。我们可以通过 Java.Runtime.addShutdownHook(Thread hook) 方法向 JVM 注册关闭钩子,在 JVM 关闭之前会自动调用钩子方法。Shutdown Hook 介原创 2021-06-12 09:01:11 · 767 阅读 · 8 评论 -
Spring Boot 3种定时任务方式
通过 Spring Boot 框架,我们可以使用3种方式来实现定时任务。原创 2021-03-03 14:24:21 · 6580 阅读 · 27 评论 -
【Spring系列】应用启动后回调机制CommandLineRunner和ApplicationRunner接口
关注微信公众号【Java之言】,更多干货文章和学习资料,助你放弃编程之路!文章目录一、前言二、CommandLineRunner 接口说明三、ApplicationRunner 接口说明一、前言如果我们想在应用启动时,搞事情,并且在整个应用生命周期只搞一次,有什么办法呢?比如在应用启动的时候,提前从数据库加载一些数据,提前加载加密证书等。其实 SpringBoot 有2大法宝可以做到,CommandLineRunner 和 ApplicationRunner 接口。这2个接口里面都只有一个 .原创 2021-02-20 15:07:56 · 4504 阅读 · 8 评论 -
【Spring系列】使用InitializingBean和DisposableBean来管理bean的生命周期
文章目录前言一、Bean 的生命周期一、InitializingBean 接口说明二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、Bean 的生命周期通常意义上讲的bean的名称周期,指的是bean从创建到初始化,经过一系列的流程,最终销毁的过程。只不过,在Spring中,bean的生命周原创 2021-02-19 23:56:54 · 2139 阅读 · 21 评论 -
Springboot 全局异常处理
关注微信公众号【Java之言】,更多干货文章和学习资料,助你放弃编程之路!文章目录一、为何要处理全局异常?二、开发环境三、添加依赖四、自定义异常错误类4.1 自定义异常基础接口类4.2 通用异常信息枚举类4.3 业务异常信息枚举类4.4 自定义业务异常类五、接口返回统一格式六、全局异常处理七、测试7.1 辅助类7.2 测试结果一、为何要处理全局异常?在平常项目开发过程中,程序难免会出现运行时异常,或者业务异常。难道要针对每一处可能出现的异常进行编写代码进行处理?或者直接不处理异常,将一大屏堆.原创 2021-02-06 20:42:26 · 4503 阅读 · 17 评论 -
SpringBoot配置多环境配置文件
聆听 沉淀 传播 … 关注微信公众号【架构技术之美】,了解更多技术和学习资料文章目录一、前言二、单个配置实现多环境配置三、多个配置文件形式四、激活配置文件方式五、配置文件加载顺序一、前言对于springboot工程,在不同环境(例如dev,test,prod等)可能有不同的配置信息(配置在application.yml或application.properties中),例如swagger.enable这个变量,在dev和test环境值为true,在prod环境的值为false。在sprin.原创 2020-11-14 20:33:06 · 2204 阅读 · 0 评论 -
SpringBoot 整合 MongoDB 连接池配置详解
SpringBoot 提供了相应的类让我们能自定义配置连接池。原创 2020-11-08 12:23:30 · 17844 阅读 · 10 评论 -
SpringBoot 之 HandlerInterceptor 拦截器的使用
SpringBoot 之 HandlerInterceptor 拦截器的使用原创 2020-10-25 10:42:24 · 9298 阅读 · 23 评论 -
Spring Boot CommandLineRunner接口详解
文章目录如何使用CommandLineRunner接口配合@Component注解使用配合@SpringBootApplication注解使用多个CommandLineRunner实现类的执行顺序问题实际应用中,会有在项目服务启动的时候就去加载一些数据或做一些事情的情况。为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现,实现功能的代码放在实现的run方法中。这段初始化代码在整个应用生命周期内只会执行一次。而且我们可以在run()原创 2020-08-27 14:20:55 · 2207 阅读 · 0 评论 -
第三章 Springboot 热部署
一:原理pring-boot-devtools模块能够实现热部署。修改代码,修改配置文件以及修改页面等都能触发重新启动项目。深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader。这样在有代码更改的时候,原来的restart ClassLoader被丢弃,...原创 2020-04-25 17:55:04 · 1166 阅读 · 0 评论 -
第二章 Springboot 自定义banner图案
Springboot默认开启banner,在项目期待是会在控制台默认打印spring图案。SpringBoot有一个接口org.springframework.boot.Banner实现这个操作。故我们可以实现这个接口来打印自定义banner信息,但是不推荐,因为这不是什么重要的功能,没必要,既然SpringBoot提供了这个功能,肯定为我们实现了。在Springboot工程的src/mai...原创 2020-04-25 15:03:14 · 1677 阅读 · 0 评论 -
static 属性为何不能使用 @Value 注解
在某个 Spring 项目中,看到有人在 Spring Bean 中对 static 静态属性使用 @Value 注解进行属性值注入,结果没将配置文件中配置的值赋值到属性中。下面演示进行问题复现。原创 2020-03-31 19:47:58 · 3903 阅读 · 0 评论