上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 装饰者模式/包装模式是指在不改变原有对象基础上,将功能附加到对象上。提供了比继承更有弹性的替代方案。 装饰者模型核心是不改动原先业务内容,但又给原来业务增加额外职责东西。 装饰者模式框架图: 原先主业务接口以及实现类 修饰者基类 implements InterfaceComponent 修饰者具体 阅读全文
posted @ 2023-03-07 13:44 colorfulworld 阅读(18) 评论(0) 推荐(0)
摘要: 工厂模式本质是让对获取对象过程的抽象 现有如下需求,根据输入类型,将数据存到Mongo还是Oracle,如下两个实例分别不使用工厂与使用工厂模式的比较 1. 不使用工厂模式 如下实例中,根据controller层输入type不同类型,需要hardcode加if...else..逻辑来判断执行哪个se 阅读全文
posted @ 2023-03-04 21:31 colorfulworld 阅读(718) 评论(0) 推荐(0)
摘要: 1. ConcurrentHashMap结构 Java8 以前ConcurrentHashMap是数组+链表 Java8及以后ConcurrentHashMap是数组+链表+红黑树 结构这方面和HashMap比较类似,具体参考:https://www.cnblogs.com/enhance/p/11 阅读全文
posted @ 2023-02-25 15:09 colorfulworld 阅读(150) 评论(0) 推荐(0)
摘要: producer可能给多个topic,多个partition发送消息,这些消息组成一个事务,这些消息需要对consumer同时可见或者同时不可见。Kafka事务需要在producer端处理,consumer端不需要做特殊处理,跟普通消息消费一样 1.事务流程 整个流程步骤: 事务初始化: InitT 阅读全文
posted @ 2023-02-22 17:15 colorfulworld 阅读(854) 评论(0) 推荐(0)
摘要: 1.Spring Boot Security简介 Spring Security是一個安全组件。Spring Security采用“安全层”概念使每一层都尽可能安全。Spring Security可以在Controller层、service层、Dao层等通过加注解的方式来保护应用程序的安全。 在安全 阅读全文
posted @ 2023-02-07 21:39 colorfulworld 阅读(202) 评论(0) 推荐(0)
摘要: 1.Spring Cloud简介 Spring Cloud是一个微服务框架,常用组件如下: Eureka:实现服务的注册与发现(可以理解为注册中心,另外Spring Cloud也支持Zookeeper、Consul用于服务注册和发现)。Eureka组件提供服务的健康检测以及界面友好的UI,便于开发人 阅读全文
posted @ 2023-02-07 11:40 colorfulworld 阅读(284) 评论(0) 推荐(0)
摘要: 线程互斥是指某一代码同时只能允许一个线程访问 对象锁:对象锁锁的是对象,所以说如果这个锁是对象锁,而且是同一对象下多线程,那么线程间是互斥的。对象锁包含:锁非静态方法/对象/代码块类锁:类锁锁的是类,如果这个锁是类锁,而且是同一类(可以是不同对象)下多线程,那么线程间是互斥的。类锁包含:锁静态方法/ 阅读全文
posted @ 2023-01-12 15:40 colorfulworld 阅读(333) 评论(0) 推荐(0)
摘要: 1. 线程状态图 wait: Object方法,当前线程执行wait将释放锁,进入等待池中,等待其他线程唤醒 sleep: Thread方法,当前线程只是休眠并不释放锁 yield: Thread方法,优先执行其他线程,不释放锁 join: Thread方法,是一种特殊wait。比如有两个线程t1、 阅读全文
posted @ 2023-01-11 08:36 colorfulworld 阅读(657) 评论(0) 推荐(0)
摘要: 1. cap基本理论 cap是指在分布式系统中,一致性(consistency)、可用性(avaliablity)、分区容错性(partition tolerance) 一致性 all nodes see the same data all the same time.所有主副结点同一时间数据完全一 阅读全文
posted @ 2023-01-07 15:19 colorfulworld 阅读(233) 评论(0) 推荐(0)
摘要: 1. CAS基础 cas使用场景时多线程中数安全 1.1 CAS操作原理 CAS: compare and swap CAS操作包含三个操作数:内存位置(V)、预期原值(A)、更新值(B); 实例: AtomicInteger at=new AtomicIngeger(3); at.incremen 阅读全文
posted @ 2023-01-07 12:46 colorfulworld 阅读(128) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页