摘要: 1.写一个拦截器的实现类,继承HandlerInterceptor 2.把拦截器加入到registry并指定路径。 registry.addInterceptor(new MyInterceptor1()).addPathPatterns("/test1/**").excludePathPatter 阅读全文
posted @ 2024-01-18 16:19 NobodyHero 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 包括一个异步的使用。 短信的异步发送。 使用new Thread(() -> {}).start() 代替线程池的弊端。 使用线程池的好处。 阅读全文
posted @ 2024-01-18 13:58 NobodyHero 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 问题: 两次点击过快导致新增操作插入相同数据。 AOP的使用: 1.标注@Aspect,说明此类是切面类。 可以先用@Pointcut定义一个表达式。然后在@Around中引用这个@Pointcut的方法。 更常见的是直接在Around里面定义。 @Around("@annotation(注解的位置 阅读全文
posted @ 2024-01-18 13:36 NobodyHero 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 河北王校长的新书,速读一下。并写一下读书笔记 阅读全文
posted @ 2023-10-24 23:52 NobodyHero 阅读(230) 评论(0) 推荐(0) 编辑
摘要: Handler方法,两个方法一个setNextCarBuild设置责任的下一继任者。另一个处理抽象方法 三个继承抽象Handler的类: 组装车头,车身,车尾 客户端进行调用: 在每一个责任中设置下一责任继承人,然后调用第一个责任人,就会进行组装 阅读全文
posted @ 2023-10-24 23:24 NobodyHero 阅读(24) 评论(0) 推荐(0) 编辑
摘要: Command: 用来生命执行操作的接口 ConcreteCommand类:将一个接收者对象绑定于一个动作,调用接收者相应操作,以实现Excute Invoker:执行类,要求该命令执行这个请求。 Receiver:知道如何实施与执行一个与请求相关的操作,任何类都可能作为一个接收者。 命令类, re 阅读全文
posted @ 2023-10-24 23:18 NobodyHero 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 将抽象的部分和它的实现部分分离,是他们都可以独立地进行变化。 Implementor 两个具体实现化角色: 车类: 汽车类和具体的车Bus. Abstraction refinedAbstraction: 客户端: 这样写,在客户端代码里去设置车具体的引擎。 可以把引擎和车属性进行解耦。 实现系统可 阅读全文
posted @ 2023-10-24 07:57 NobodyHero 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式抽象类: 提供一个接口访问迭代器 迭代器具体实现类: 客户端代码: 给迭代器实现一个数组。 首先获取迭代器,然后利用迭代器的hasNext、next方法进行判断。 阅读全文
posted @ 2023-10-24 07:23 NobodyHero 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 组合模式采用树形结构的概念。 组合模式抽象方法Component(定义添加,删除,具体方法) 枝节点和叶节点(枝节点主要保证逻辑顺序,叶节点有具体显示方法,没有添加删除方法) Component组合的抽象方法定义(定义添加,删除,显示的具体方法) 枝节点,主要作用是梳理逻辑关系 叶节点: 不可以添加 阅读全文
posted @ 2023-10-24 07:10 NobodyHero 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 在想使用一个已存在的类,但如果它的接口,也就是他的方法和你要求的不相同时,可以考虑率使用适配器。 继承的方式实现适配器模式: 现有一个功能是使用220v电压 我现在想使用180v电压,需要有一个适配器来中转。 通过继承的方式,写一个接口继承220v,然后调用220v 最终客户端调用 委让的方式实现适 阅读全文
posted @ 2023-10-24 06:58 NobodyHero 阅读(2) 评论(0) 推荐(0) 编辑