SpringBoot
文章平均质量分 78
今天例外
这个作者很懒,什么都没留下…
展开
-
几种常见的JAVA日志框架的简单介绍
接口级别的Java日志框架:slf4j 和common-log实现级别的:JDK自带的, log4j, log4j2, logback(这个是slf4j旗下的具体实现)为什么会有接口呢?是为了方便日志框架的选择:slf4j 和common-log 都能自动识别你要用的日志的框架(也就是实现级别的日志框架),大致的原理是这两个接口会根据你引进的jar包来调用相应的原创 2017-12-20 17:19:24 · 1428 阅读 · 0 评论 -
日志配置文件详解-logback,log4j
常见的日志配置文件详解原创 2022-08-19 16:49:57 · 22954 阅读 · 0 评论 -
条件式注解@ConfigurationOnXXX原理详解
springboot条件注入原理详解,相关注解@Condition, @Conditional,@ConfigurationPhase,@ConditionalOnBean,@ConditionalOnClass等原创 2022-08-16 11:24:20 · 22758 阅读 · 0 评论 -
集群模式下RedisTemplate使用Scan命令全节点模糊匹配key
为什么需要模糊匹配key?因为有时候,缓存的key设计的不合理,比如商品信息的缓存设计成:门店编码+商品id,当我们需要查询一个门店下的所有商品缓存的时候,可能就需要获取这个门店编码下的所有商品信息的key然后遍历获取门店下的所有商品。为什么使用Scan?因为Keys是阻塞的,严重影响性能,官方不建议生产环境使用,取而代之的是Scan命令。Scan命令怎么使用呢?语法:scan cursor [MATCH pattern] [COUNT count]语法说明:[]里面的代表.原创 2021-08-20 17:35:58 · 27772 阅读 · 4 评论 -
最详细的分库分表Demo—springboot_shardingjdbc_mybatis
分库分表 — Shardingjdbc分库分表:分库分表为什么分表? 肯定是因为需要怎么进行分表?垂直分表和水平分表什么是垂直分表?如果表过大,垂直分表就是按照业务角度将大列分为几个表,划分的原则一般是频繁变化的分为一个表,不频繁变化的,尤其大字段,如text和blob字段这种影响io性能的划分为另外一个表中,这样就实现了垂直分表。如下图:什么是水平分表?就是将数据根据策略分到不同的表中,从而使数据均匀的分布在不同的数据库和表中,也是最常见的分表方式。如下就是将一个表分为四个表:将ds库中的o原创 2021-04-19 15:54:53 · 22975 阅读 · 2 评论 -
SpringCloudGateWay
SpringCloudGateWay进行服务化:我们需要将我们的springCloudGatewa项目当作一个服务注册到EurekaServer中,配置如下server:port: 8888spring:application:name: cloud-gateway-eurekacloud:gateway:discovery:locator:enabled: trueeur...原创 2021-03-22 10:37:27 · 20350 阅读 · 0 评论 -
SpringBoot入参字段校验-分组和自定义校验注解
SpringBoot入参字段校验-分组背景: 有一个请求实体bean,里面的属性在有些接口里面用,有些是在另外一个接口用;public class FantasyProductUpDownRequest { // 批量接口参数用 private Set<Long> skuStoreIdSet; // 单个接口用 private Long skuStoreId;}因为是相同功能的参数,所以就写在一个实体bean里面了,之所以要分组,是因为无论是批量接口还是单个原创 2021-03-09 17:29:13 · 20743 阅读 · 0 评论 -
Spring循环依赖-出现的原因,发现机制和解决方法
SpringBean依赖注入——循环依赖Spring循环依赖出现的原因循环依赖的现象就是Spring的容器在创建Bean的生命周期中,出现了相互依赖的场景,A->B->A,比如上面A的实例属性值是B的实例,B的实例属性值也是A的实例,这样A在进行初始化并且属性赋值的时候发现依赖B,就去实例化B,发现在给B初始化进行属性赋值的时候,也依赖A,这样就出现了最简单的循环依赖。针对上面的问题:首先我们要知道循环依赖只发生在作用域是单例的场景里面,即scope=“singleton”,如原创 2021-02-26 16:41:06 · 21727 阅读 · 0 评论 -
RocketMQ—高级使用场景原理
Producer生产消息的过程 Producer投送消息的过程简单来说,是首先找到这个Topic对应的所有Broker的Queue,并按照投放策略, 把消息投放到对应的broker上的Queue上。Consumer消费消息的过程 同一个消费者组,里面的消费者,在进行消费的时候,比如消费的Topic一共有5个Queue,q1,q2,q3,q4,q5 这个消费者组里面有3个消费者c1,c2,c3,负载均衡下五个消费者会分轮训分配给这3个消费者, c1会监听消费q1,q4;c2监听消费q2,q5;.原创 2020-09-30 18:15:49 · 20920 阅读 · 3 评论 -
Springboot 单元测试怎么使用解读
SpringBoot单元测试// 注解部分 @RunWith(SpringRunner.class) @SpringBootTest public class ApplicationTest { @Autowired private WebApplicationContext context; private MockMvc mvc; @MockBean private AuthInterceptor authInterceptor;原创 2020-09-30 15:08:43 · 19672 阅读 · 0 评论 -
RocketMQ-名词和架构
RocketMQrocketMQ是做什么的我就不用解释了吧,以及他的背景。本文主要是为了让大家明白RocketMQ的工作原理。主要名词解释ProducerGroup由一组Producer组成TopicBrokerQueueConsumerGroup原创 2020-09-29 17:29:39 · 20139 阅读 · 0 评论 -
Apollo 配置详解
Apollo的总体架构Apollo的使用架构Apollo的不同维度的配置分类下面按照生效顺序Application在springboot的application.property定义appid这个key的value,标识该类型的应用。EnvironmentDEV(开发环境)FAT(功能测试)UAT(验收测试)PRO(生产环境)Cluster(集群)N...原创 2020-04-03 16:33:00 · 28798 阅读 · 0 评论 -
SpringBoot配置文件详解
spring.profiles配置文件激活详解spring.profilesspring.profiles.activespring.profiles.include正常使用场景我们正常的开发时,对应不同的环境我们会有不同的配置文件:application.yaml = application-defaultyamlapplication-dev.yamlapplication-test.yamlapplication-prod.yaml常规配置文件如上,一般是按照applicat原创 2020-08-27 16:16:49 · 20510 阅读 · 0 评论