springboot
文章平均质量分 84
huan_1993
这个作者很懒,什么都没留下…
展开
-
在Java程序中监听mysql的binlog
是一个Java库,通过它可以实现日志的监听和解析操作。它提供了一系列可靠的方法,使开发者通过监听数据库的binlog日志,来实时获取数据库的变更信息,比如:数据的插入更新删除等操作。github地址从下图中可知,针对text类型的字段,默认转换成了byte[]类型,那么怎样将其转换成String类型呢?此处针对更新语句来演示注意:断点跟踪源码发现text类型的数据映射成了blob类型,因此需要重写 deserializeBlob 方法@Overrideif (null!原创 2024-10-12 08:56:28 · 929 阅读 · 0 评论 -
实现fastdfs防盗链功能
我们可以通过fastdfs实现一个分布式文件系统,如果我们的fastdfs部署在外网,那么任何一个人知道了我们的上传接口,那么它就可以文件的上传和访问。那么我们如何阻止他人访问我们fastdfs服务器上的文件呢?`此处就需要使用fastdfs的防盗链功能。`原创 2022-10-09 20:29:52 · 1356 阅读 · 0 评论 -
SpringBoot整合fastdfs
在上一节中,我们搭建了一个`单机版的fastdfs`服务,此处我们将fastdfs与springboot进行整合,实现文件的上传和下载。原创 2022-10-08 22:20:07 · 1181 阅读 · 1 评论 -
SpringBoot集成drools
在之前的文章中,我们学习了drools的一些基本语法,在这篇文章中,我们实现在SpringBoot中集成drools。原创 2022-05-26 10:05:06 · 1663 阅读 · 0 评论 -
在SpringBoot中使用logback优化异常堆栈的输出
在我们在编写程序的过程中,无法保证自己的代码不抛出异常。当我们抛出异常的时候,通常会将整个异常堆栈的信息使用日志记录下来。通常一整个异常堆栈的信息是比较多的,而且存在一些没用的信息。那么我们如何优化一些异常堆栈的信息打印,过滤掉不必要的信息呢?原创 2022-05-09 10:02:14 · 3270 阅读 · 0 评论 -
Spring按业务模块输出日志到不同的文件
在我们开发的过程中,可能存在如下情况:1、`有些时候我们需要调用第三方的接口`,一般情况下,调用接口,我们都会记录请求的入参和响应的。如果我们自己系统的日志和第三方的日志混合到一个日志文件中,那么可能查找日志就比较麻烦了。`那么我们是否可以将第三方系统的日志单独放到另外的文件中呢?`2、或者有些时候我们系统需要进行数据迁移,如果某条数据迁移失败了,`是否单独放到一个日志文件中比较清晰呢?`原创 2022-05-06 13:20:08 · 892 阅读 · 0 评论 -
SpringBoot中异常处理
在我们编写程序的过程中,程序中可能随时发生各种异常,那么我们如何优雅的处理各种异常呢?原创 2022-04-28 16:01:22 · 818 阅读 · 0 评论 -
SpringBoot扩展点EnvironmentPostProcessor
之前项目中用到了Apollo配置中心,对接Apollo配置中心后,配置中心的属性就可以在程序中使用了,那么这个是怎么实现的呢?配置中心的属性又是何时加载到程序中的呢?那么我们如果找到了这个是怎么实现的是否就可以 从任何地方加载配置属性、配置属性的加解密功能呢?原创 2022-04-25 13:19:20 · 1462 阅读 · 0 评论 -
替换Spring容器中已经存在的Bean
我们在开发的过程中,有些类是自动加入到Spring容器中的,如果我们要替换掉这些默认的实现该怎么操作呢?原创 2022-04-21 10:45:25 · 6759 阅读 · 2 评论 -
Spring的3级缓存和循环引用的理解
Spring中如何解决循环依赖,Spring 3级缓存的作用原创 2022-04-19 19:03:12 · 458 阅读 · 0 评论 -
SpringBoot自定义控制层参数解析
在Spring的Controller中,我们通过`@RequestParam`或`@RequestBody`就可以将请求中的参数映射到控制层具体的参数中,那么这个是怎么实现的呢?**如果我现在控制层中的某个参数的值是从`Redis`中来,那么应该如何实现呢?**原创 2021-12-11 19:17:27 · 1389 阅读 · 0 评论 -
Spring Data Redis Stream的使用
Spring Data Redis Stream的使用一、背景二、整合步骤1、引入jar包2、配置RedisTemplate依赖3、准备一个实体对象4、编写一个常量类,配置Stream的名称5、编写一个生产者,向Stream中生产数据1、编写一个生产者,向Stream中产生ObjectRecord类型的数据2、每隔5s就生产一个数据到Stream中三、独立消费1、实现从头开始消费-xread实现2、StreamMessageListenerContainer实现独立消费四、消费组消费1、实现StreamLi原创 2021-11-11 21:26:14 · 3062 阅读 · 1 评论 -
SpringBoot加密配置属性
一、背景在系统中的运行过程中,存在很多的配置属性,比如: 数据库配置、阿里云配置 等等,这些配置有些属性是比较敏感的,是不应直接以明文的方式出现在配置文件中,因此对于这些配置我们就需要加密来处理。二、需求先如今我们系统中存在如下数据库配置,其中数据库的密码和数据库的url属于敏感配置,在配置文件中需要加密展示,而不应该使用明文展示.# 此属性的值需要加密展示spring.datasource.url=jdbc:mysql://127.0.0.1:3306/seata_account?useUnic原创 2021-10-19 08:59:41 · 310 阅读 · 0 评论 -
Spring DeferredResult 异步请求
Spring DeferredResult 异步请求一、背景二、分析三、实现要求四、后端代码实现五、运行结果1、超时操作2、正常操作六、DeferredResult运行原理六、注意事项1、异常的处理2、异步过程中的拦截器。七、完整代码八、参考链接一、背景最近在做项目的过程中,有一个支付的场景,前端需要根据支付的结果,跳转到不同的页面中。而我们的支付通知是支付方异步通知回来的,因此在发出支付请求后无法立即获取到支付结果,此时我们就需要轮训交易结果,判断是否支付成功。二、分析要实现后端将支付结果通知给原创 2021-10-15 12:41:32 · 534 阅读 · 0 评论 -
seata整合多数据源
seata整合多数据源一、背景二、整合步骤1、seata server的搭建2、引入数据源切换组件3、引入seata组件4、配置多数据源5、关闭seata自己默认的数据源代理6、配置seata事物分组7、业务库创建undo_log表8、xid的传递9、代码中使用数据源切换10、业务方法开启分布式事物三、注意事项四、完整代码一、背景在这篇文章中,我们使用Seata整合一下多数据源的场景。多数据源切换的功能我们使用dynamic-datasource-spring-boot-starter来完成,并且这个组原创 2021-09-28 10:37:40 · 2068 阅读 · 1 评论 -
Seata整合SpringBoot和Mybatis
Seata整合SpringBoot和Mybatis一、背景二、实现功能三、每个服务使用到的技术1、账户服务2、订单服务四、服务实现1、账户服务实现1、引入jar包2、项目配置3、建表语句2、订单服务实现1、引入jar包2、项目配置3、配置数据源代理4、配置RestTemplate传递xid5、@GlobalTransactional分布式事务3、事务分组需要和配置中心对应上五、演示1、没有发生异常2、发生异常六、可能遇到的问题1.Nacos 作为 Seata 配置中心时,项目启动报错找不到服务。如何排查,如原创 2021-09-24 16:39:02 · 750 阅读 · 2 评论 -
Spring动态添加定时任务
一、背景在工作中,有些时候我们有些定时任务的执行可能是需要动态修改的,比如: 生成报表,有些项目配置每天的8点生成,有些项目配置每天的10点生成,像这种动态的任务执行时间,在不考虑分布式执行的情况下,我们可以使用 Spring Task来简单的实现。二、需求和实现思路1、能够动态的添加一个定时任务。在Spring中存在一个类ThreadPoolTaskScheduler,它可以实现根据一个cron表达式来调度一个任务,并返回一个ScheduledFuture对象。2、能够取消定时任务的执行。通原创 2021-07-08 22:00:36 · 4461 阅读 · 9 评论 -
Spring父子上下文的使用案例
一、背景最近在看在使用Spring Cloud的时候发现,当我们通过Feign去调用别的微服务时,当我们有多个Feign客户端(比如:用户微服务、商品微服务)时,是可以为每个Feign客户端配置不同的实现,比如:用户微服务使用Feign默认的契约,而商品微服务可以使用Spring MVC 的契约格式,那么这个是怎么实现的呢?此处我们写一个简单的例子来模拟一下。二、需求假设我们存在一个 CommonApi的接口,用户微服务(user)和我们的调用方分别实现这个接口,实现不同的功能,而我们的产品微服务(p原创 2021-06-08 16:46:52 · 526 阅读 · 0 评论 -
基于自定义Validator来验证枚举类型
基于自定义Validator来验证枚举类型一、背景二、技术要点三、实现一个自定义枚举校验。1、需求。2、实现步骤1、自定义一个 Sex 枚举。2、自定义一个 Enum 注解3、编写具体的验证逻辑类4、编写一个web请求,添加学生。1、创建请求参数实体类2、编写访问方法3、页面访问1、sex 属性的值在 Sex 枚举的范围之内2、sex 属性的值不在 Sex 枚举的范围之内四、对应关系五、参考文档一、背景在我们系统中,有部分字段的值是枚举类型的,但是请求参数中一般不会直接使用枚举来进行接收,而是使用Int原创 2021-04-02 09:21:20 · 1332 阅读 · 2 评论 -
Prometheus基于Eureka的服务发现
Prometheus基于Eureka的服务发现一、背景二、实现步骤1、eureka 客户端注册到prometheus中2、prometheus中的写法3、实现效果三、完整代码四、参考链接一、背景目前我们的项目是使用Spring Cloud构建的微服务,使用的是Eureka作为注册中心,且项目中使用到Prometheus做服务监控。此处简单记录一下 eureka 作为 prometheus 的服务发现。二、实现步骤1、eureka 客户端注册到prometheus中修改 application.ym原创 2021-03-16 12:40:03 · 2129 阅读 · 0 评论 -
SpringBoot整合Prometheus
SpringBoot整合Prometheus一、需求二、实现步骤1、引入jar包2、application.prometheus文件配置3、查看指标数据4、接入到 prometheus 中1、修改 prometheus.yml 配置文件2、在 prometheus 中查看指标数据三、个性化 MeterRegistry1、增加全局标签2、对标签、指标名称等进行过滤。3、监控业务数据1、如果我们的监控依赖其它的bean,推荐使用`MeterBinder`注册2、不依赖其它bean四、代码路径五、参考链接一、需原创 2021-03-15 17:24:58 · 783 阅读 · 0 评论 -
SpringBoot小知识点
记录SpringBoot的小知识点1、在 Spring 上下文刷新之前设置一些自己的环境变量1、实现 EnvironmentPostProcessor 接口2、spring.factories 配置文件的配置1、在 Spring 上下文刷新之前设置一些自己的环境变量需求:假设我们自己想根据某些条件设置 系统的启动端口(server.port),或设置一些别的变量时,就可以用如下方法实现。1、实现 EnvironmentPostProcessor 接口实现Ordered是为了启动的顺序。public原创 2020-07-19 14:11:20 · 512 阅读 · 0 评论 -
linux系统上国际化失败
文章目录一、需求:二、出现的问题三、代码结构1、配置文件中的配置![i18n配置](https://img-blog.csdnimg.cn/20190929191122320.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Z1X2h1b1...原创 2019-09-29 19:32:38 · 931 阅读 · 1 评论 -
springboot多配置环境
在我们的开发过程中,经常会有多套配置环境,比如开发环境(dev),测试环境(test),生产环境(prod)等,在各个环境中我们需要使用到不同的配置,那么在springboot中是如何做到的呢?1.第一种方式,使用properties属性文件2.第二种方式,使用yaml文件进行配置。一、使用属性文件进行配置。 在classpath类路径下创建applicat...原创 2016-12-26 23:53:43 · 192 阅读 · 0 评论 -
springboot读取配置文件中的信息
原创 2016-12-25 22:44:41 · 220 阅读 · 0 评论 -
freemarker自定义指令
最近项目中使用了spring boot搭建项目,使用spring security管理项目中的权限,使用freemarker作为视图层。为了将权限控制到按钮上,因此考虑直接使用spring security的标签实现,但是在整合的过程中,没有整合出来,突然想到freemarker可以自定义指令实现一些功能,因此记录一下,在freemarker中如何实现一个自定义指令,来达到实现部分内容的显示...原创 2017-11-17 23:41:52 · 349 阅读 · 0 评论 -
spring、spring boot中配置多数据源
在项目开发的过程中,有时我们有这样的需求,需要去调用别的系统中的数据,那么这个时候系统中就存在多个数据源了,那么我们如何来解决程序在运行的过程中到底是使用的那个数据源呢? 假设我们系统中存在2个数据源 mysql 和 oracle. 系统中存在 2个方法 methodA 和 methodB ,其中methodA是是需要去调用mysql、methodB是需要使用到oracle,那...原创 2018-03-08 23:32:53 · 187 阅读 · 0 评论 -
springboot 整合 rabbitmq
这篇文章,我们使用springboot来简单整合一下RabbitMQ,由于sprinboot的 “约定优于配置“,使得我们整合起来非常方便。参考文档实现功能:自动申明队列、交换器和绑定 使用自定义的MessageConvert如何进行配置 如何传递 JavaBean 消息和普通消息 如何手动签收消息 发送持久化消息实现要点: ** 自定申明队列、交换器...原创 2018-10-24 20:34:54 · 255 阅读 · 0 评论 -
springboot整合rabbitmq实现生产者消息确认、死信交换器、未路由到队列的消息
在上篇文章 springboot 整合 rabbitmq 中,我们实现了springboot 和rabbitmq的简单整合,这篇文章主要是对上篇文章功能的增强,主要完成如下功能。需求: 生产者在启动的时候,自动创建好队列、绑定、交换器并设置好 死信交换器、备份交换器(alternate-exchange)。生产者发送消息后,生产者这边需要对发送的消息进行确认,确认Rabbi...原创 2018-11-05 16:38:35 · 4091 阅读 · 0 评论 -
springboot中使用定时任务
定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务。在spirngboot中使用定时任务变的特别简单,只需要在启动类上增加一个@EnableScheduling注解即可。默认情况下,如果什么都不进行配置,就会导致一个问题,系统中所有的定时任务都是使用的一个线程去执行的,也就是说,如果如果同一个时刻有2个定时任务需要执行,那么只可能有一个定时任务在执行,如果要解决这个问题可...原创 2017-11-15 22:47:55 · 1520 阅读 · 0 评论 -
springboot入门
最近在学习springboot,因此记录下学习过程中一些小例子,防止以后忘记可以,可以随时复习一下。由于工作中使用的开发工具是eclipse,因此使用eclipse开发。1.创建pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xm...原创 2016-12-25 22:08:43 · 141 阅读 · 0 评论