随笔分类 - 技术 / coding
记录代码实现,展示分享
摘要:为了熟练使用和记忆,按照这个规则记忆就可以。 函数式接口四大类型: 1.消费型 给一个入参,没有返回值 @FunctionalInterface public interface Consumer<T> { void accept(T t); default Consumer<T> andThen(
阅读全文
摘要:上传文件抽象层 public interface IUpload { //ftp file input stream UploadResultEntity upload(InputStream inputStream, Charset character) throws IOException; }
阅读全文
摘要:Spring mvc项目通过listener初始化spring IOC容器过程 方法太多太深,没法一一追到位 graph TD; ContextLoaderListener#contextInitialized-->ContextLoader#initWebApplicationContext --
阅读全文
摘要:1. 类型转换器 如果接口中接收参数的实体对象中,有一个字段类型为Date,但实际传递的参数是字符串类型:2022-12-15 10:20:15,该如何处理? Spring提供了一个扩展点,类型转换器Type Converter,具体分为3类: Converter<S,T>: 将类型 S 的对象转换
阅读全文
摘要:创建时间轴 1,调用Bean的构造函数(或者工厂方法)实例化Bean. 2,对Bean的成员变量赋值. 3,如果Bean实现了,调用Bean的setBeanName方法. 4,如果Bean实现了BeanFactoryAware,调用Bean的setBeanFactory方法. 5,如果Bean实现了
阅读全文
摘要:目录Spring整合SpringMVC整合spring的配置文件什么时候加载?servletListener几种实现方式直接实现原生的 ServletContextListener实现spring框架的Applicationlistenerspringboot可以实现在各个阶段的事件监听 Sprin
阅读全文
摘要:1.Sort ApplicationInitializer: 2.sort Listener: 3.getRunListener: 4.eventPublishingRunListener.starting 发布启动中事件; 构建 ApplicationArguments 参数, 4.1prepar
阅读全文
摘要:实际就是缓冲思想,池化思想。 比如线程池、数据库连接池、还有JDK里面也有。 Integer里面toString使用享元数据 final static char[] digits = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9
阅读全文
摘要:有时候面对复杂的场景,就想着怎么解耦、怎么复用、怎么扩展,然后无意间各种设计模式就拧巴在一起了。 责任链和观察者的区别 责任链强调的是顺序,前后可能有逻辑关系。而观察者体现的是的独立性。虽然都有传递消息通知执行的功能,但是侧重点不同。 两个结合使用 我的这个业务场景正好符合混合使用。因为一个消息发布
阅读全文
摘要:这个模式核心思想是将基本的数据对象和对应的操作相互分离。数据对象就只是数据对象,如果想要扩展操作,就扩展对应的visitor。 这种模式下的两次分派 第一次分派,是将对数据对象本身进行分派,可以有不同的实现。 第二次分派,是visitor接收不同的数据对象。 结果就是数据对象接受了visitor,然
阅读全文
摘要:装饰器强调的是动态功能增强,而这种增强是比单继承更加的灵活的方式,可以动态的给基类扩展不同的功能。 继承实现增强有不同结构 如果是按照最小原则,是这样的⬇︎⬇︎⬇︎ 如果不想那么多类文件,是这样的⬇︎⬇︎⬇︎ 虽然这样都能实现让子类拥有base/A/B三个操作,但如果现在只需要base/B操作怎么办
阅读全文
摘要:双重检查是我用的最多的一种。因为它是一种线程安全的写法,而这种写法可以应用到各种场景中。比如:涉及到多线程共享的数据,在更新时候的使用。 比如这种: 其他的方式也有,比如内部类的实现方式。 点击查看代码 public class SingletonEagerInnerClass { private
阅读全文
摘要:模版符合开闭原则,到处用于钩子方法。有的钩子方法不会改变行为,有的钩子会改变运行轨迹。框架中到处使用。 Channel中定义了需要的操作,AbstractChannel实现了核心功能,然后不同的Channel实现只需要告知具体channel的描述信息即可。 Channel package com.x
阅读全文
摘要:不同类型的消息处理 这里抽象层用的是接口 MessageProcess /** * 消息处理 * * @author haiyang */ public interface MessageProcess<K,V> { /** * 处理消息 * * @param messageInfo 消息相关信息
阅读全文
摘要:图片缩略图功能 需要对图片生产缩略图,压缩并保存到不同的介质中。输入端可能是本地图片,也可能是网络图片。保存的位置可能是本地,也有可能是第三方的minio、阿里云oss、七牛云oss。并且这些途径可能随时扩展。为了设计的灵活性,这里就要把输入可输出抽象出来,应用层通过抽象层结偶。这样的抽象和实现分离
阅读全文
摘要:AOP实现 说明 jump 数据源注解 DataSource.java AOP实现 DataSourceAspect.java 数据源常量 DataSourceNames.java 动态数据源 DynamicDataSource.java 动态数据源config DynamicDataSourceC
阅读全文