01 2023 档案
摘要:先来说一个总结: 1、通过构造函数的方式进行的BEAN创建,出现了循环依赖,没有办解决 2、单例BEAN通过SET方法进行属性注入,可以通过提前暴露的方式(即三层缓存)进行解决 3、如果是原型模式的BEAN(作用域是 prototype)无办法解决,因为它不在SPRING容器中进行缓存。无法进行提前
阅读全文
摘要:参考:https://www.cnblogs.com/shindo/p/5579191.html (先 mark 一下)
阅读全文
摘要:UML中,可见性分为4级 1、public 公用的 :用+ 前缀表示 ,该属性对所有类可见 2、protected 受保护的:用 # 前缀表示,对该类的子孙可见 3、private 私有的:用- 前缀表示,只对该类本身可见 4、package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见
阅读全文
摘要:spring 注入的3种方式 属性注入 就是平时使用最多的 在属性上加一个 @Autowired set 方法 在spring3.x及之前推荐使用,通过提交暴露可以解决循环依赖的问题 构造器(构造方法) 在 spring4.x及之后推荐使用 // 属性注入 @Service public class
阅读全文
摘要:java里面创建实例有哪些方式呢? 直接new 一个 通过反射 通过 clone 方法 通过反序列化 new 一个实例 // 使用java语言的关键字 new 创建对象,初始化对象数据,这个确实就没有什么好说的了,应该也是用得最多的的了 Dog doge = new Dog(); 通过反射生成一个实
阅读全文
摘要:记录一个非常stupid的记录 在生产环境上修改了数据, 然后再做查询,发现数据始终和服务器查询到的结果始终不相同。 再让同事去查询,同事和服务器的一致,我的数据始终不一样。 还在代码上加日志,搞来搞去。 原来是自己在窗口上做的调整没有手动commit;。。。。 然后如果窗口不关掉,即使还没有com
阅读全文
摘要:背景 公司扫描服务依赖项的时候,发现服务中有引用了logback的包,因版本过低,需要升级才能修复风险。 通过maven的 Dependency Analyzer 工具,确实找到了一些,排掉后,扫描发现,还存在! 于是使用 mvn dependency tree 打印依赖树的形式去查看, 一开始是在
阅读全文
摘要:背景 使用Caffeine本地缓存,外加@Cacheable注解,想把这个注解加到mapper上,并且把参数id做key的时候,发现参数拿不到。 这样是拿不到的 @Cacheable(value = "xxCache", key="'#id") UserVO queryUserByLdapId(@P
阅读全文
摘要:背景 Springboot + CaffeineCache + 使用@Cacheable注解 请求查询一个方法,因为数据变化频率低,查询频率高,于是使用缓存,并使用注解。 但发现用了 @Cacheable 这个注解,发现并没有生效。 代码是这样子的 ***ServiceImpl.java publi
阅读全文
摘要:背景 业务系统中,有一个导出,就是很普通的列表查询,然后可以点击导出,生成一个文件。就这么一个功能。 使用的 excel 工具类是: org.apache.poi.xssf 用的poi这个工具类。 问题描述 在一天晚上项目上线后,发现这个功能点出现错误 点击导出时,后台报了一段错误: Caused
阅读全文
摘要:背景 开发过程中遇到了这个问题,翻找了一些帖子,记录一些“可能”的解决方案。出现问题的原因可能各有不同 -- redis官方回复是网络问题 可选择的解决方案: -- 将redis连接超时时间改的大一点 -- 初始化连接调小 -- 空闲时间调小 -- keepalive 调小
阅读全文
摘要:背景 @NonNull: 关于这个注解,lombok 的一个注解,可以加在方法-入参,或构造函数上。 本以为加了这个参数,会自动判断(编译阶段)会判断,但发现并不是这个意思。因为在编译的时候,传个空的参数过来,它是不会有任何的报错提示的。 那这个东西有什么用呢?一度产生了怀疑。 直至,后来才突然醒觉
阅读全文
摘要:背景 JAVA8之后引入了 optional 关于optional的使用也比较多了,此处暂时不表 这儿暂且只说一下 orElse和orElseGet的区别 写了一个获取枚举类型的工具类,来做个例子 嗯,怎么说呢,看代码吧,如果没有表达清楚,也没办法了。 如果orElseGet 和 orElse 里面
阅读全文