springboot技术的使用案例分享
文章平均质量分 66
springboot项目中常用的技术
康提扭狗兔
9年码龄,互联网童工,13岁自主创业,目前已月入0.3w+。
展开
-
本地缓存caffeine cache
略。原创 2024-07-10 03:54:01 · 121 阅读 · 2 评论 -
使用DelayQueue实现延迟任务
有时候,我们需要在当前时间点往后延迟一定时间,再执行任务,该怎么实现呢?原创 2024-07-03 04:27:25 · 676 阅读 · 0 评论 -
mybatisplus的lambdaQuery()使用案例
查询分页为了用方式一,可以在service里注入别的service,但是注意要防止循环依赖,可以用mapper获取自己的mapper,原创 2024-06-27 06:47:22 · 310 阅读 · 0 评论 -
Spring自定义配置属性类
以一个minio的配置类为例首先,由于minio模块被很多微服务需要,因此封装了一个starter,当背的微服务需要的时候就进行引入。以下是starter模块的结构图。原创 2024-05-08 23:19:18 · 623 阅读 · 2 评论 -
springboot集成异步调用
同步:在发出一个调用时,在得到调用结果之前,该调用不返回(实时处理)。----不相干的业务逻辑会阻塞一些核心的业务逻辑。异步:在发出一个调用时,这个调用立刻返回,没有返回结果(分时处理)原创 2024-05-07 18:08:10 · 187 阅读 · 3 评论 -
Springboot集成feign远程调用
需求:在leadnews-wemedia微服务里需要调用leadnews-article微服务的接口。新建一个支持feign调用的名为heima-leadnews-feign-api的模块。原创 2024-05-07 18:56:18 · 355 阅读 · 0 评论 -
Spring通过token获取登录用户信息的方式及优化
问题:当请求的header里携带token时,如何直接通过token获取到当前登录用户的信息。原创 2024-04-28 10:00:00 · 369 阅读 · 0 评论 -
低耦合双写一致性方案-使用canal+MQ
> 需求:继上一篇使用xxljob实现数据的全量同步到es后,当数据库中新增、删除、修改数据时,应该对es中的对应索引库实现增量同步。> 本文介绍了2种双写一致性方案,对其中使用MQ的方案进行了实现。原创 2024-05-17 00:59:40 · 845 阅读 · 0 评论 -
Springboot集成MybatisPlus以及常用语句、分页
问题:当项目中使用了MybatisPlus框架的时候,如何通过MybatisPlus插件实现分页查询。原创 2024-04-29 07:30:00 · 181 阅读 · 0 评论 -
搜索自动补全-elasticsearch实现
github地址:https://github.com/infinilabs/analysis-pinyin/releases?page=6必须与elasticsearch的版本相同第四步,重启es1.2 定义索引库1.3 给索引库添加文档详情参考我的另一篇博客: xxljob分片广播+多线程实现高效定时同步elasticsearch索引库app_info_article对应的pojo类核心代码在xxl-job任务调度平台执行一次该任务,文档就被添加进去了如图示例1.示例2.A原创 2024-05-23 01:48:42 · 678 阅读 · 0 评论 -
CompletableFuture使用案例
优化代码时,除了@Async注解,项目中如何使用多线程异步调用?举个例子,去餐厅吃饭的时候。先点餐,厨师做菜,在厨师做菜的时候打游戏,然后根据厨师做的菜的口味去买矿泉水还是可乐。这样,厨师做菜并没有阻塞你打游戏,并且还是能接收到厨师任务的结果。与2个任务同步进行相比缩短了时间。原创 2024-05-08 01:08:54 · 269 阅读 · 0 评论 -
xxljob分片广播+多线程实现高效定时同步elasticsearch索引库
xxljob分片广播:假如一共有1000条数据,有3个节点上运行着SearchApplication服务。那么每个节点需要同步的数据总条数为334,334,332条。分页查询:节点0的任务总条数为334条,那么需要做分页(假设分页size为20)查询的次数为17次,每查1次后,将查到的数据通过restHighLevelClient发送到es中。do {//5.1:分页查询//5.2:将数据导入ES//分页查询+导入es的操作//5.3:是否要查询下一页 index+size。原创 2024-05-15 16:07:58 · 1292 阅读 · 1 评论 -
Mongodb介绍及springboot集成增删改查
MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。原创 2024-05-22 14:18:46 · 814 阅读 · 0 评论 -
实现ApplicationContextAware接口完成springboot项目的初始化处理工作
需求:在项目启动的时候,从数据库里取出所有敏感词,放到map里面。原创 2024-05-08 11:03:53 · 320 阅读 · 0 评论 -
动态添加xxljob任务-xxljob源码改造
在实际开发中,很多时候需要在代码中动态添加和执行xxljob的任务,那么原来的xxljob任务调度平台不能完成这项需求,就需要对源码进行改造。原创 2024-05-31 06:29:39 · 941 阅读 · 0 评论 -
实体类status属性使用枚举类型的步骤
当实体类的状态属性为Integer类型时,容易写错。原创 2024-06-12 04:58:10 · 580 阅读 · 0 评论 -
springboot项目requestId设置、统一responsebody封装以及切面
【代码】springboot项目requestId设置、统一responsebody封装以及切面。原创 2024-06-27 04:00:27 · 922 阅读 · 0 评论 -
分库分表、读写分离--ShardingJDBC
建立user_manage数据库,在该库中建立1张表app_user用来做分库前的测试,另外建12张按月份命名的表app_user_2024XX用来做分库。原创 2024-06-01 04:20:53 · 831 阅读 · 0 评论 -
项目中常量的定义方式
【代码】项目中常量的定义方式。原创 2024-06-12 00:09:36 · 655 阅读 · 0 评论 -
springboot集成swagger、knife4j及常用注解
1.2 添加Swagger配置关键 RequestHandlerSelectors.basePackage(“com.gz”)通常情况下,swagger配置放在common模块中,别的模块需要集成swagger时,只需要引入common模块就行,因此需要将SwaggerConfiguration类在META-INF/spring.facories文件里进行配置,这样才能将SwaggerConfiguration类注册进IOC容器。但是如果SwaggerConfiguration类在启动类的同级目录或子原创 2024-06-13 20:37:51 · 724 阅读 · 0 评论 -
springboot配置集成RedisTemplate和Redisson,使用分布式锁案例
文章要点。原创 2024-06-04 06:29:40 · 603 阅读 · 0 评论 -
RabbitMQ安装配置,封装工具类,发送消息及监听,延迟消息
【代码】RabbitMQ配置及工具类。原创 2024-06-12 02:37:29 · 510 阅读 · 0 评论 -
validator参数校验
可以通过捕获参数校验产生的异常,直接返回前端校验信息。log . error("请求参数校验异常 -> MethodArgumentNotValidException, {}" , msg);log . error("请求参数异常 -> ConstraintViolationException, {}" , e . getMessage());原创 2024-06-14 03:01:30 · 384 阅读 · 0 评论 -
springboot启动配置文件-bootstrap.yml常用基本配置
这里配置了mq的基本配置,例如地址、端口等,默认就是tjxt的地址,不需要修改。另外还配置类消费者的失败重试机制,如有需要可以按需修改。外,其它参数都有默认值,在没有配置的情况下会按照默认值来配置,也可以按照参数名来自定义这些参数值。注意配置了Redis的基本地址和连接池配置,省去了我们大部分的工作。这里配置了默认的Feign日志级别以及连接池配置,一般不需要修改。这里配置了xxl-job组件的地址等信息,一般不需要修改。接下来,我们就分别看看每一个共享的配置文件内容。原创 2024-06-07 03:54:45 · 955 阅读 · 0 评论 -
网关鉴权模块-鉴权+登录拦截+jwt
微服务的拦截器会获取请求头中的user-info,然后存入到UserContext(底层基于ThreadLocal),这样后续的业务处理时就能直接从UserContext中获取用户了。spring会根据当前微服务的bootstrap.yml,决定是否配置登录拦截器,并且配置需要登录的路径和不需要登录的路径。网关先解析jwt令牌,做第一次鉴权,鉴权完成后将解析的user对象的id添加到请求头中:user-info = 用户id;网关鉴权后,微服务为什么还要做鉴权?各个微服务中,对登录拦截器的需求不同。原创 2024-06-07 05:54:31 · 750 阅读 · 0 评论