狐狸的搬砖生活

Quartz 每个任务日志单独保存至数据库中

Quartz作为常用的定时调度框架,每个任务的运行日志如果混杂在程序中就很难 Debug 和问题。本文将把每个 Quartz`的任务单独抽离出来,可以把每个任务的日志保存到数据库或者文件中。主要使用Logback动态添加 Appender 和 Logger 来实现

aBadFox aBadFox 发布于 2022-02-12

Spring Boot 实现多数据源切换

Spring 本身支持多种数据源的核心类是 org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource, 这个类的核心方法有 3 个,setTargetDataSources(Map<Object, Object> targetDataSources) ;setDefaultTargetDataSource(Object defaultTargetDataSource) ; determineCurrentLookupKey()

aBadFox aBadFox 发布于 2021-11-03

异步初始化Bean

优化启动时间的思路当 Spring 系统系统足够庞大时, 系统启动时耗时会明显增加, 为了优化启动时间,一般有以下的思路能够异步初始化的组件, 尽量异步排除的无关的依赖和垃圾代码优化业务代码的执行逻辑异步初始化 BeanSpring 的 生命周期 如下这里面最最耗时的就是 Bean 的 init-

aBadFox aBadFox 发布于 2021-08-02

如何在 Spring Boot 项目正确使用类加载器

context = SpringApplication.run(SecretWebsiteApplication.class, args); Class&lt;?&gt; aClass = Class.forName(&quot;cn.yogehaoren.secret

aBadFox aBadFox 发布于 2021-04-26

spring cloud gateway 自动注入静态资源映射

前言spring cloud gateway与nginx都可以作为反向代理服务器,虽然nginx的性能更优于gateway,但两者的差距在一个数量级内,在现在性能膨胀的时代,只要相差不是一个数量级,就可以通过加机器解决(如果一台不行,那就加两台😎)。gateway使用java 中最著名的高性能框架

aBadFox aBadFox 发布于 2020-11-28

Spring Boot 连接 Websocket

需求传统Spring boot Websocket项目中,服务端本身开放一个websocket给客户端、前端推送消息。当系统本身需要连接外部的websocket时,应该如何处理。本篇文章主要解决,系统作为客户端连接外部的websocket服务,同时提供断线重连服务。实现本文中使用了以下技术Okhtt

aBadFox aBadFox 发布于 2020-11-23

Spring Boot 整合 Redis缓存

SpringBoot缓存架构根据JSR缓存规范,每个应用程序可以有多个缓存提供者。每个缓存提供者有不同的缓存管理器。缓存管理器中有不同的缓存域,每个域中存储着一个个的键值对,这些键值对就是缓存的实体。Spring对缓存的抽象概念解释Cache缓存接口,定义缓存操作。实现有RedisCache,EnC

aBadFox aBadFox 发布于 2020-06-02

Spring MVC BindingResult 不返回指定报错信息

SpringMVC参数验证不返回指定报错信息这个是主要原因@Valid的参数后必须紧挨着一个BindingResult参数,否则spring会在校验不通过时直接抛出异常下面是啰嗦的话可以不用看了日志调错时发现,springmvc在参数无法满足情况下。不返回报错信息。而是直接返回报错信息。Valida

aBadFox aBadFox 发布于 2020-05-28