置顶java 之自定义 扁平化 try catch 函数式工具类

java 

设计初衷 为了解决业务服务较为复杂的业务逻辑假如有个业务场景:第三方会同步一批数据到我方系统,我方使用mq异步消费来解耦合一次消费会同时消费100条数据,其中可能存在非法数据,或一些未知异常所以数据之间不能互相影响。业务中会调用如下三个方法public Demo insert(Demo demo);

spring-event 教程 spring对于事件驱动的支持

java 

spring-event官方文档spring-event 是 spring对于事件驱动的支持事件驱动的优点事件驱动系统反映了现代企业的实际工作方式 - 每天全天都会发生数千个小变化。Spring能够处理事件,并使开发人员能够围绕它们构建应用程序,这意味着您的应用程序将与您的业务保持同步。Sprin

jetbrains annotations 库 注释类注解

java 

jetbrains annotations 库 优雅的书写纯函数通过该注解可以让你写代码的时候 更优雅的表明函数的语意官方文档这是一个注释库,对于写注释而言,有些时候书写表达式能表现的更为精简 通用,并且更富有语意性!@Nls @NonNls @Nls Integer code = -500; /

spring 完成bean初始化后对某些值进行 初始化

java  框架 

spring 完成bean初始化后对某些值进行 初始化当需要在初始化spring-bean 后还需要对某些参数进行初始化时则开始使用该方法如下是一个第三方渠道的初始化操作 气值key 和 platFormId 是在yaml文件中配置的,而sm4 是由key 和 platFormId 进行一些加密操作

spring 中 BeanFactory 和 FactoryBean 的区别

java  框架 

spring 中 BeanFactory 和 FactoryBean 的区别这两种方式都是创建spring 的方式FactoryBeanpublic class DemoFactoryBean implements FactoryBean<Model> { @Override

spring 源码 IOC

java  框架 

java 框架

java nio

java  io 

java 1.4 以后推出了nio 极大的优化了java 的io性能

java 线程池


线程池ThreadPool线程池包含两个list一个是线程list 一个是等待队列的list一个线程池包含7个重要的参数corePoolSize: 核心线程数 线程池被创建时 该线程池中就会有这两个线程maximumPoolSize:最大线程数keepAliveTime: 如果线程池长期不工作会归还

java 容器


容器MapTreeMap底层是红黑树多线程容器HashTable&&Vector所有方法自带锁。java1.0 最早的数据类,所有方法都加了synchronized,基本不会使用这个类型。HashMap默认是无锁的,如果需要锁可以使用 var synchronizedMap = Co

java 4种引用类型


java引用类型强引用普通的引用都是强引用Object o = new Object();软引用弱引用需饮用

ThreadLocal 底层


ThreadLocal作用为会为每个线程实现上下文

AQS 底层


AQSJDK中许多并发工具类的内部实现都依赖于AQS,如ReentrantLock, Semaphore, CountDownLatch等。AQS底层依靠CAS与同步队列。AbstractQueuedSynchronizer(队列同步器)volatile int state; 一个保证可见性的参数由

java 多线程 之锁


java 锁话术话术解释race condition竞争条件,指的是多线程访问共享数据时产生的竞争unconsistency数据的不一致问题,在并发环境下产生了非期望的结果monitor锁critical section临界区, 就是被锁的代码区域如果临界区执行时间比较长,叫做锁的粒度比较

java 多线程编程 三大特性


java 多线程编程 三大特性可见性volatile使用private static /*volatile*/ Boolean b = true; public static void main(String[] args) throws InterruptedException {

java 多线程 线程打断inerrupt ,线程结束


线程打断inerruptinerrupt() //设置打断标记位 其实就是告诉jvm 我想要打断这个线程,但是是否打断什么时候打断jvm 说了算isInerrupt() //是否被打断过 查询标记位static inerrupted() //返回当前线程是否被打断过,并重制打断标记 true->

设计模式 建造者模式 builder


建造者模式使用建造者模式 一次性构建出一个对象的所有属性。构建时使用链式的结构构建对象。通常的做法是在对象里使用内部类叫做build,把外部对象的属性作为方法声明出来并且有一个方法叫做build 返回对象本身。还有一个好处,举个例子我这里构建了一个Person 的类,我现在想更改他的年龄,但是不想修

设计模式 代理模式


代理模式静态代理 基于组合 和 接口public interface ProxyInterface { void apply();}public class Base implements ProxyInterface { @Override public void apply()

java 设计模式 享元模式


享元模式通俗易通,共享元数据对象重复利用最好的例子是数据链接池,用的时候去池子里拿,用完还回去。

java 设计模式 观察者模式


观察者模式实现一在被观察的方法里,直接调用观察者的方法,实际业务场景中 传个表达式进来更灵活。实现二定义接口声明 被观察的动作,然后各个观察着去实现这个接口,定义行为。被观察者持有观察者的list,并在事件执行后调用他们。通常观察者包含三个内容 多个观察者以及其事件,被观察者,interface(声

java 设计模式 ChainOfResponsibility 责任链模式


责任链模式责任链模式,顾名思义主要应用场景为一步一步往下走,比如审核。public class Main { public static class HandlerDTO { private String msg; public HandlerDTO(String