xiaoguangtouqiang
码龄9年
关注
提问 私信
  • 博客:503,047
    503,047
    总访问量
  • 143
    原创
  • 44,080
    排名
  • 112
    粉丝
  • 0
    铁粉

个人简介:一枚小小程序员

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2016-02-01
博客简介:

xiaoguangtouqiang的博客

查看详细资料
  • 原力等级
    当前等级
    4
    当前总分
    853
    当月
    4
个人成就
  • 获得170次点赞
  • 内容获得45次评论
  • 获得567次收藏
  • 代码片获得902次分享
创作历程
  • 6篇
    2024年
  • 2篇
    2023年
  • 10篇
    2022年
  • 1篇
    2021年
  • 14篇
    2020年
  • 17篇
    2019年
  • 96篇
    2018年
成就勋章
TA的专栏
  • 基础知识
    60篇
  • 前端
    14篇
  • Angular2
    8篇
  • 数据结构
    4篇
  • 数据库
    8篇
  • 抽象
    6篇
  • rxjs
    1篇
  • debounce
    1篇
  • 中间件
    7篇
  • springboot
    29篇
  • 源码解析
    5篇
  • Spring
    9篇
  • 工具
    1篇
  • Angularjs
    5篇
  • 线程
    6篇
  • 设计模式
    17篇
  • docker
    7篇
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

flux和fluxsink的使用

);});try {
原创
发布博客 2024.10.25 ·
233 阅读 ·
3 点赞 ·
1 评论 ·
0 收藏

spring中的异步操作

注意,thenApply如果前面一个任务抛出异常,这个任务是不会执行的;另外还有thenRun方法,只要前面一个执行完成,后面一个就开始执行;这两个方法,也可以传入一个线程池,通过线程池来执行;如果没有线程池,使用默认的ForkJoinPool.commonPool()来执行,默认的线程数是cpu的核数;注意,某些特别耗时的异步任务可能很浪费时间,因此强烈建议针对每个业务使用自己的线程池;发生异常时,先执行eceptionally中的,再执行whenComplete里面的方法;异步任务之间,可以串行执行。
转载
发布博客 2024.02.01 ·
358 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Spring Boot 中操作 Bean 的生命周期

通过@Bean注解的两个属性,指定在Bean初始化和销毁的时候执行指定的方法;
原创
发布博客 2024.01.31 ·
746 阅读 ·
7 点赞 ·
0 评论 ·
10 收藏

Redis分布式锁

首先每个线程会在某个目录下创建一个顺序性节点,然后获取这个目录下的所有节点,判断当前的节点,是否是最小节点,如果是,获取到锁;如果是次小节点,则监听比自己小的节点变化,之后重新尝试比较判断自己是否是最小的,是则获取到锁;解决办法,在释放的时候,判断key对应的value是不是自己的就可以了,如果不是自己的,就不处理;数据库乐观锁:在表中增加一个version字段,每次更新数据的时候,先获取当前的version,更新的时候对比数据库中的version跟获取的version是否相同;如果存在,则返回失败;
原创
发布博客 2024.01.26 ·
522 阅读 ·
10 点赞 ·
0 评论 ·
7 收藏

logback日志过滤

系统中的错误日志,发送到群中,可以及时跟进系统中的异常情况;使用logback的filter功能,针对日志级别进行过滤,在过滤器中,可以发送到其他地方;FilterReply.NEUTRAL,表示根据后边的过滤规则,要不要记录日志。这里面可以写任何代码了,最后返回。
原创
发布博客 2024.01.24 ·
563 阅读 ·
7 点赞 ·
0 评论 ·
6 收藏

统一日志切面

需求:打印系统的controller的请求日志和返回结果,以及接口耗时,方便后续排查问题;可以使用filter来做,也可以使用切面,倾向于使用切面;* 以 iface 包下定义的所有请求为切入点。* 请求参数/返回结果的日志打印最大长度。// 开始打印请求日志。// 打印请求相关参数。
原创
发布博客 2024.01.24 ·
403 阅读 ·
11 点赞 ·
0 评论 ·
8 收藏

TransactionalEventListener

正常情况,B和A为同一个事务,B中读取到的为A中未提交的事务数据;B中抛出异常,会导致A中的事务回滚;会在A方法执行完成之后,再执行B方法;因为是commit之后,所以B中抛出异常,A中不会回滚;A和B是两个事务,之间不会有任何关联;B中方法会立刻执行,所以拿到的数据看当时的数据库数据;提交之前,所以抛出异常会影响A中事务的提交,但是读取的数据,是A中的数据是一样的;不区分哪个阶段,但是是同一个事务中的数据;而且抛出异常也不会影响A中事务的回滚;读取到的也是A中事务的数据,是一个事务;
原创
发布博客 2023.11.27 ·
1079 阅读 ·
7 点赞 ·
0 评论 ·
9 收藏

Git操作

git操作
原创
发布博客 2023.02.27 ·
177 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

springboot+nacos+dubbo

springboot,集成dubbo,nacos作为配置中心
原创
发布博客 2022.10.13 ·
1481 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Gradle多模块项目配置

springboot gradle 多模块项目配置
原创
发布博客 2022.09.30 ·
1331 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Gradle版本的统一管理

gradle中版本的统一管理配置
原创
发布博客 2022.09.29 ·
1690 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Springboot接入skywalking

springboot接入skywalking
原创
发布博客 2022.09.27 ·
2027 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

DelayQueue使用

在项目中有使用到延时队列的场景,做个简单的记录说明;首先DelayQueue实现了BlockingQueue,加入其中的元素必须实现Delayed接口;当生产者元素调用put往其中加入元素时,出发Delayed接口的compareTo方法进行排序,这个排序是按照时间的,按照计划执行的时间排序,先执行的在前面,后执行的排后面;消费者获取元素时,调用getDelay方法返回的值大于0,则消费者线程wait返回的这个时间后,再从队列头部取出元素;下面是个简单的例子impo...
原创
发布博客 2022.04.11 ·
1865 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

获取类中所有的泛型对应的class类型

获取类中所有的泛型对应的class类型
原创
发布博客 2022.04.02 ·
1136 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

springboot 构建多模块项目

记录下spring boot 多模块项目的设置过程;首先简单说下为啥需要多模块,一个模块分目录行不行,当然可以,但是这样会导致多个团队开发的时候混乱,会有很多冲突;如果根据领域设计将项目按照不同的领域进行划分,后续维护起来会方便很多;对于以后如果进行微服务的拆分也是很方便的,直接将对应的模块迁移成一个单独的服务即可;接下来会用一个简单的项目演示,将springboot的web层,service层,dao层拆分成不同的模块;通过一个简单的crud来测试下;项目目录结构1.首先最外层是pom.x
原创
发布博客 2022.03.14 ·
8088 阅读 ·
3 点赞 ·
0 评论 ·
16 收藏

grep命令常规用法

1.grep 搜索关键字 文件名grep port aaa.txt在aaa.txt中搜索含有port的行2.-r,递归查找某个目录,包含下面所有的文件grep port -r aaaa/递归查找aaaa这个目录下的所有文件,包含port的文件以及匹配的行3.-i 忽略大小写grep PORT -i aaa.txt在aaa.txt中搜索所有port匹配的行,不区分大小写4.-n 显示出行数grep port -n aaa.txt会把行数打印出来5.-
原创
发布博客 2022.01.21 ·
1969 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Springboot集成log4j

log4j在项目中应该是使用的最多的日志框架了,一直没有好好去深入总结下,这篇文章记录下一些常规的用法;1.集成引入依赖,如下所示: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <...
原创
发布博客 2022.01.13 ·
10845 阅读 ·
4 点赞 ·
2 评论 ·
28 收藏

java中函数编程的妙用

上一篇分享了kotlin和java中,函数作为方法的参数的情况,这里记录下,函数作为方法返回值的使用的一些场景。1.在判断条件true时,抛出异常使用场景:简化项目中用if来判断当某个条件为true时,抛出异常信息;@FunctionalInterfacepublic interface ThrowExceptionFunction { /** * 抛出异常信息 * * @param message 异常信息 * @return void
原创
发布博客 2022.01.04 ·
1467 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kotlin和java函数式编程

在java中有时候使用函数式编程的时候,有这种Producer,Consumer作为函数的参数的场景,在kotlin中的使用记录下;fun randomProvier(c: (Double) -> Unit): Double { var n = Math.random() // 步骤1:生成随机数 println("生成随机数") // 步骤2: c(n) // 步骤3:随机数n作为参数,执行传入的代码逻辑
原创
发布博客 2021.12.31 ·
1442 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring Cloud-服务网关Zuul

1.网关的引入    Spring Cloud微服务生态中,我们使用Spring Cloud Netflix中的Eureka实现了服务注册与发现;微服务之间通过Ribbon或Feign实现服务之间的调用以及负载均衡;通过Spring Cloud Config实现了应用多环境的外部化部署以及版本管理;为了使微服务集群更加健壮,使用hystrix的熔断机制避免某些服务出故障后引发的故障蔓延的情况;那么...
原创
发布博客 2018.07.08 ·
1179 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多