SpringBoot-注解@WebFilter
参考文献
@WebFilter
使用
用@WebFilter时,Filter被加载有两个条件:
声明了@WebFilter
在能被@ServletComponentScan扫到的路径之下
@WebFilter和@Component
相同点
它们最终都被包装并实例化成为了FilterRegistrationBean
它们最终都是在ServletContextInitializerBeans的构造器中开始被实例化
不同点
被@WebFilter修饰的过滤器会被提前在BeanFactoryPostProcessors扩展点包装成FilterRegistrationBean类型的BeanDefinition,然后在ServletContextInitializerBeans.addServletContextInitializerBeans()进行实例化;
而使用@Component修饰的过滤器类,是在ServletContextInitializerBeans.addAdaptableBeans()中被实例化成Filter类型后,再包装为RegistrationBean类型。 ...
Java基础-JDK各版本特性汇总(JDK1.0~JDK18)
参考文献
JRE Version
123456789101112131415161749 = Java 550 = Java 651 = Java 752 = Java 853 = Java 954 = Java 1055 = Java 1156 = Java 1257 = Java 1358 = Java 1459 = Java 1560 = Java 1661 = Java 1762 = Java 1863 = Java 1964 = Java 2065 = Java 21
JDK各版本特性汇总(JDK1.0~JDK18)
JDK版本
发布时间
代号
备注
1
1996年1月23日
Oak(橡树)
初代版本,伟大的一个里程碑,但是是纯解释运行,使用JIT,性能比较差,速度慢
1.1
1997年2月19日
Sparkler(宝石)
JDBC、支持内部类、RMI、反射等等
1.2
1998年12月8日
Playground(操场)
集合框架、JIT等等
1.3
2000年5月8日
Kestrel(红隼)
对Java的各个方面都做了大量优化和增强
1.4
2 ...
读书笔记-重构改善既有代码的设计(第二版)
重构改善既有代码的设计(第二版)
重构的定义
名词定义: 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本.
动词定义: 使用一系列重构手法可观察行为的前提下,调整其结构.
重构过程的精髓: 小步修改,每次修改后进行运行测试.
重构和添加新功能
添加新功能是,我不应该修改既有代码,只管添加新功能.通过添加测试并让测试正常运行,我可以衡量自己的工作进度.
重构时我就不能再添加功能,只管调整代码的结构.此时我不应该添加任何测试(除非发现有先前遗漏的东西),只在绝对必要(用以处理接口变化)时才修改测试.
何时重构
Don Roberts给了我一条准则: 第一次做某件事时尽管去做;第二次做类似的事会产生反感,但无论如何还是要去做;第三次再做类似的事,你就应该重构.
事不过三,三则重构.
读书笔记-高效程序员的45个习惯/程序员修炼之道
高效程序员的45个习惯:敏捷开发修炼之道
第四章
CRC (类-职责-协作)
类名
职责: 它应该做什么?
协作者: 要完成工作它要与其他什么对象一起工作
第八章
立会
立会
昨天有什么收获?
今天计划要做哪些工作?
面临着哪些障碍?
每日立会的好处
让大家尽快投入一天的工作中来
如果某个开发人员在某一点上有问题,他可以趁此机会将问题公开,并积极寻求帮助
帮助团队带头人或管理层了解哪些领域需要更多的帮助,并重新分配人手
让团队成员知道项目其他部分的进展情况
帮助团队识别是否在某些东西上有重复劳动而耗费了精力,或者是否某个问题有人已有现成的解决方案
通过促进代码和思路的共享,来提升开发速度
鼓励向前的动力: 看到别人报告的进度都在前进,会对彼此形成激励
⽴会的时间最⻓不能超出30分钟,10~15分钟⽐较理想
代码检查
检查列表
代码能够被读懂和理解?
是否有任何明显的错误?
代码是否会对应用其他部分产生不良影响?
是否存在重复的代码(在复查的这部分代码中,或是在系统的其他部分代码)?
是否存在可以改进或重构的部分?
程序员修炼之道:通向务实的最高境界( ...
解决方案-日志管理
参考文献
日志格式定义
日志收集
filebeat + logstash + elasticsearch + kibana
日志查询
Linux工具-chrony
参考文献
https://www.cnblogs.com/edisonfish/p/17215427.html
chrony
安装
1apt-get install chrony
显示系统时钟性能的参数
1234567891011121314# chronyc trackingReference ID : CA760182 (time.neu.edu.cn)Stratum : 3Ref time (UTC) : Wed Mar 19 01:28:02 2025System time : 0.000000166 seconds fast of NTP timeLast offset : +0.000341989 secondsRMS offset : 0.000341989 secondsFrequency : 9.475 ppm slowResidual freq : -216.112 ppmSkew : 1000000.000 ppmRoot delay : 0.041528080 ...
llm-基本概念
参考文献
软件工程-需求分析
参考文献
需求分析
需要明确以下几点:
需求是什么?
约束是什么?
一定不能!
风险是什么?
what & how
我不知道要做什么
我好像知道要做什么
我明确知道不能做什么
我明确知道要做什么
我明确知道要怎么做
需求分析方法
风险驱动模型
运用最小的架构技术集合去降低最近紧迫的风险以求事半功倍
步骤
识别风险,并排定优先级(从需求出发)
选择并运用一组技术
评估风险降低的程度
模版-技术调研文档
参考文献
技术调研
https://wklken.me/extra/share/something_about_tech_selection.pdf
思考
在决定是否需要进行技术调研时,可以从以下几个关键点出发来评估其必要性:
新技术的应用: 当考虑采用一种新的技术时,如果该技术的社区支持尚未成熟,可能存在一定的实施风险.此时,进行详细的技术调研有助于全面权衡利弊,确保选择最适合项目的解决方案.
功能验证的需求: 如果对某个特定功能的实现可能性存有疑问,建议通过构建一个简易的演示项目(demo)来进行初步验证.这不仅能帮助你了解该功能的实际可行性,也能为后续开发提供宝贵的经验.
框架或库的选择困惑: 面对多个可供选择的框架或库时,不确定哪一个最符合项目需求.在这种情况下,技术调研显得尤为重要.它可以帮助你深入了解各个选项的特点、优势以及潜在局限,从而做出最佳决策.
时间成本考量: 值得注意的是,对于那些仅需花费几分钟就能明确答案的问题,可能不需要进行全面的技术调研.合理评估投入与产出比,确保资源的有效利用.
技术选型四板斧
需求分析
方案调研
方案对比
方案确定
方案 ...