SpringBoot中工厂模式使用
摘要:工厂模式本质是让对获取对象过程的抽象 现有如下需求,根据输入类型,将数据存到Mongo还是Oracle,如下两个实例分别不使用工厂与使用工厂模式的比较 1. 不使用工厂模式 如下实例中,根据controller层输入type不同类型,需要hardcode加if...else..逻辑来判断执行哪个se
阅读全文
posted @
2023-03-04 21:31
colorfulworld
阅读(698)
推荐(0) 编辑
ConcurrentHashMap
摘要:1. ConcurrentHashMap结构 Java8 以前ConcurrentHashMap是数组+链表 Java8及以后ConcurrentHashMap是数组+链表+红黑树 结构这方面和HashMap比较类似,具体参考:https://www.cnblogs.com/enhance/p/11
阅读全文
posted @
2023-02-25 15:09
colorfulworld
阅读(104)
推荐(0) 编辑
Kafka事务
摘要:producer可能给多个topic,多个partition发送消息,这些消息组成一个事务,这些消息需要对consumer同时可见或者同时不可见。Kafka事务需要在producer端处理,consumer端不需要做特殊处理,跟普通消息消费一样 1.事务流程 整个流程步骤: 事务初始化: InitT
阅读全文
posted @
2023-02-22 17:15
colorfulworld
阅读(672)
推荐(0) 编辑
Spring Boot Security
摘要:1.Spring Boot Security简介 Spring Security是一個安全组件。Spring Security采用“安全层”概念使每一层都尽可能安全。Spring Security可以在Controller层、service层、Dao层等通过加注解的方式来保护应用程序的安全。 在安全
阅读全文
posted @
2023-02-07 21:39
colorfulworld
阅读(187)
推荐(0) 编辑
Spring Cloud
摘要:1.Spring Cloud简介 Spring Cloud是一个微服务框架,常用组件如下: Eureka:实现服务的注册与发现(可以理解为注册中心,另外Spring Cloud也支持Zookeeper、Consul用于服务注册和发现)。Eureka组件提供服务的健康检测以及界面友好的UI,便于开发人
阅读全文
posted @
2023-02-07 11:40
colorfulworld
阅读(274)
推荐(0) 编辑
synchronized锁作用范围
摘要:线程互斥是指某一代码同时只能允许一个线程访问 对象锁:对象锁锁的是对象,所以说如果这个锁是对象锁,而且是同一对象下多线程,那么线程间是互斥的。对象锁包含:锁非静态方法/对象/代码块类锁:类锁锁的是类,如果这个锁是类锁,而且是同一类(可以是不同对象)下多线程,那么线程间是互斥的。类锁包含:锁静态方法/
阅读全文
posted @
2023-01-12 15:40
colorfulworld
阅读(288)
推荐(0) 编辑
多线程间通讯 & 线程共享变量
摘要:1. 线程状态图 wait: Object方法,当前线程执行wait将释放锁,进入等待池中,等待其他线程唤醒 sleep: Thread方法,当前线程只是休眠并不释放锁 yield: Thread方法,优先执行其他线程,不释放锁 join: Thread方法,是一种特殊wait。比如有两个线程t1、
阅读全文
posted @
2023-01-11 08:36
colorfulworld
阅读(576)
推荐(0) 编辑
CAP原理
摘要:1. cap基本理论 cap是指在分布式系统中,一致性(consistency)、可用性(avaliablity)、分区容错性(partition tolerance) 一致性 all nodes see the same data all the same time.所有主副结点同一时间数据完全一
阅读全文
posted @
2023-01-07 15:19
colorfulworld
阅读(222)
推荐(0) 编辑
CAS原理
摘要:1. CAS基础 cas使用场景时多线程中数安全 1.1 CAS操作原理 CAS: compare and swap CAS操作包含三个操作数:内存位置(V)、预期原值(A)、更新值(B); 2 Atomic原子类 JDK5之后新增并发包java.util.concurrent.*,其下的类使用CA
阅读全文
posted @
2023-01-07 12:46
colorfulworld
阅读(102)
推荐(0) 编辑
spring中Bean生命周期
摘要:1. 普通java对象创建过程 举例:BusinessService businessService=new BusinessService(); 编译:将.java文件编译成class文件 加载:等到类需要被初始化时(比如new) class文件被虚拟机通过类加载器加载到jvm(类加载过程参考ht
阅读全文
posted @
2023-01-05 16:15
colorfulworld
阅读(241)
推荐(0) 编辑
分布式事务——两阶段提交和三阶段提交
摘要:1.两阶段提交协议(2PC) 1.1 两阶段提交协议 事务发起阶段: 事务的发起者提出一个request(比如用户下单购买某个商品),要求其依赖的服务(事务的执行者)本地执行业务逻辑。执行成功本地事务不提交但要告诉发起者本地已经执行成功;执行失败执行者告诉发起者本地作业执行失败 事务提交/回滚阶段:
阅读全文
posted @
2023-01-03 14:49
colorfulworld
阅读(2166)
推荐(0) 编辑
HTTP & HTTPS
摘要:1. HTTPS vs HTTP https://www.cnblogs.com/enhance/p/15766413.html 2. HTTPS三次握手 第一步: 客户端向服务器发送HTTPS请求,服务器将公钥以证书的形式发送到客户端(服务器端存放私钥和公钥)。 第二步: 浏览器生成一串随机数,然
阅读全文
posted @
2022-12-20 20:09
colorfulworld
阅读(34)
推荐(0) 编辑
Spring batch
摘要:1.spring batch--批处理框架 2.结构: Job>Flow>Step>Chunk>read process write 2.1 基本概念: Spring Batch运行基本单位是一个job,一个job就做一件批处理事情。一个job包含多个flow,一个flow包含多个step, Flo
阅读全文
posted @
2022-12-20 18:34
colorfulworld
阅读(174)
推荐(0) 编辑
SpringBoot Actuator & SpringBoot Admin
摘要:Actuator帮助我们监控和管理Spring Boot 应用。 一. SpringBoot Actuator 1. 集成Actuator 1.1 build.gradle implementation group: 'org.springframework.boot', name: 'spring
阅读全文
posted @
2022-12-18 15:00
colorfulworld
阅读(551)
推荐(0) 编辑
SpringBoot注解~@PropertySource
摘要:1. @PropertySource SpringBoot读取配置信息的方式有以下几种。但实际开发中一个配置文件是不够用的,比如项目中集成mongo redis kafka等需要多个配置文件,这样有利于开发以及维护管理。Springboot通过PropertySource或者PropertySour
阅读全文
posted @
2022-12-17 15:33
colorfulworld
阅读(929)
推荐(0) 编辑
SpringBoot启动流程
摘要:1. 简述 Springboot启动是通过Application启动类实现 @SpringBootApplication( exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}, scanBasePack
阅读全文
posted @
2022-12-17 11:44
colorfulworld
阅读(4433)
推荐(0) 编辑
Reactive编程(流式返回)
摘要:reactive编程是一种异步编程的方案。 代码编写风格:命令式和反应式 命令式: springmvc可以理解为命令式编程,程序由不同function组成,程序运行时顺序执行对应function,下边的function依赖上边function,在上一个function还没有完成时不能将数据传给下一个
阅读全文
posted @
2022-12-12 08:16
colorfulworld
阅读(546)
推荐(0) 编辑
响应式编程
摘要:1. 响应式编程定义 响应式编程是一种异步非阻塞编程。 异步编程的目的是为了寻求更高的程序执行效率,通过编写异步的非阻塞代码可以将当先执行的任务切换到另一个任务,并在异步处理完成后返回到当前线程。 2.Java提供两种异步编程模型: 2.1 Callback(回调): 当一个方法调用另一个方法,等待
阅读全文
posted @
2022-12-11 20:30
colorfulworld
阅读(646)
推荐(0) 编辑
Spring 事务
摘要:事务 逻辑上是一组操作,要么执行要么不执行 ACID 的 4 个重要特性: 原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性(Co
阅读全文
posted @
2022-12-09 17:33
colorfulworld
阅读(64)
推荐(0) 编辑
synchronized作用域小结
摘要:Synchronized四种作用域: 对象锁:代码块修饰(对象), 非静态函数修饰 类锁: 代码块修饰(类), 静态函数修饰 对象锁:作用域仅限于对应对象内部被synchronized包裹的代码 例子1:对象锁中synchronized 方法 多个线程执行同一个对象的不同加锁非静态方法, 互斥执行
阅读全文
posted @
2022-08-17 15:16
colorfulworld
阅读(480)
推荐(0) 编辑