自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 外部组件引入选型逻辑

拿规则引擎选型为例,规则比较简单的场景自己实现比较好,引入外部组件反而增加复杂度。引入外部组件一般是因为逻辑过于复杂,自行实现难以考虑全面,这种情况下考虑使用外部组件,而对于规则简单(只有一个运算符)、规则体量小的场景,自己实现一个简单的规则匹配性能更好,复杂度低,如果未来规则逻辑变复杂了,也可以较低成本的迁移。不要有固化思维,觉得开源组件就一定比自己写的好,其实大部分性能不如自己写的好,因为组件考虑了很多复杂场景。

2023-11-17 10:28:18 61

原创 定时任务例子

2022-07-18 21:23:01 132 1

原创 拦截器相关小记

WebMvcConfigurer 实现类添加拦截器HandlerInterceptor 实现拦截器@Data@ConfigurationProperties(prefix = “xxx.xx”) public class A{ private String a;}@Configuration@EnableConfigurationProperties(A.class)public AutoConfiguration{}上面两个注解配合可以注入配置文件到非spr.

2022-05-19 14:54:50 98

原创 mysql 查询分组后把某个字段聚集及使用

select * from(select id, a.meeting_id as meeting_id, GROUP_CONCAT(b.user_id) as user_idsfrom m as a left join u as bgroup by a.meeting_id) awhere FIND_IN_SET(#{userId}, a.user_ids)其中GROUP_CONCAT 可以把分组的数据聚合在一起FIND_IN_SET 可以查询字段是否包含某个值...

2022-04-29 11:57:45 1372

原创 用接口实现的方式简化代码

@FunctionalInterfacepublic interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the thread causes the object's * <code>run</code> method t.

2022-04-28 23:04:29 645

原创 maven依赖包类spring实例注入失效问题

现象是类能够正常访问,但是没法spring自动注入。临时解决方案1:自己写一个Configuration 写bean注入方法@Configurationpublic class XxxxConfig{ @Bean public xxxx getXXXX(){ return new XXXX(); }}解决方案2:依赖包引入之后由于传递依赖,spring会去找依赖包META-INF下的spring.factories去加载config实例,

2022-04-27 13:22:54 1456

原创 java工具

arthas 线上排查工具

2021-11-30 11:04:17 139

原创 @mapper(mapstruct) 实现converter 目标对象字段默认值不生效问题

由于目标类加了@Builder(lombok)注解,mapstruct编译后的实现类会使用builder的方式去构建目标对象,默认值字段不加@Builder.Default注解的话是不会填充到字段里面去的。具体原因需要去看@Builder注解实现方式,我猜实现方式是@Builder会新增一个类,把字段都填充进去,大概是字段初始化值没加@Builder.Default注解就不填充。...

2021-11-09 11:27:50 2862

原创 代码简化小技巧

Optional.ofNullable(pageNo).orElse(DEFAULT_PAGE_NO);

2021-10-14 17:04:07 66

原创 同一个对象方法间调用不触发第二个方法切面的问题

首先先介绍切面的原理切面是基于动态代理生成代理对象,拦截Spring管理Bean的访问,即bean注入的时候注入代理的对象。然后代理对象做了什么事情呢代理对象包了一层,在执行原对象方法前后做了一些操作。最后同一个对象方法间的调用不触发第二个方法切面的原因第一方法是调用注入的代理对象的代理方法,然后执行原对象的方法,而调用第二个方法并没有通过spring管理的bean,而是对象本身(即原对象),所以第二个方法调用的是原对象的,所以没执行切面。参考:spring 依赖注入时,什么

2021-10-08 21:01:40 497

原创 socket IO流例子

一、BIO 阻塞IOimport java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class SocketServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(9000); .

2021-04-19 21:50:13 98

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除