Hcy Blog

保持激情,只有激情,才有动力

springboot 启动报log4j错误

springboot 启动报 ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console报错信息看起来与log4j有关,项目没打算用log4j,也没有主动引入log4j的,困扰了好久,以下是解决思路1springboot版本2.1.8 ...

maven 的resources标签使用

maven 的resources标签使用 maven 的resources标签使用 默认情况下的maven资源配置 定制Resources标签 directory targetPath includes 和 excludes filtering 总结 默认情况下的maven资源配置​ ...

netty buttyBuf的三种复制方式

netty buttyBuf的三种复制方式copy 物理复制,复制数据构成新buf,且与原buf无关,大小等于数据长度duplicate 逻辑复制,复制原buf的索引构成新buf,和原数据一模一样slice 切片,获取原buf指定范围的映射,大小等于切片的数据长度11121314151617181920212223 @Test public void test2() { ByteBuf b = ...

追踪一下slf4j的工作原理

追踪一下slf4j的工作原理 引入slf4j的包 测试输出 代码解析 委托给ILoggerFactory 五种状态 SubstituteLoggerFactory实现细节 SubstituteLogger实现细节 loggerFactory初始化过程 总结 一个bug ...

guava eventBus使用和分析

guava eventBus使用和分析12eventBus就是类似于观察这模式,我们将监听器注册到eventBus内,调用eventBus的post(object)方法,将任何object对象发送到eventbus中,如果某个eventbus内的监听器对该object感兴趣,则会被回掉。并将该object作为参数传进去为什么使用12eventBus使用非常方便,效率高,且监听器只需加一个注解即可,不需要特定的方法名,不需要实现特定的接口,不需要知道自己身处于哪个e...

可以使用位操作存储简单一对多的情况

可以使用位操作存储简单一对多的情况需求如下数据库中 user表有字段userLevel标识用户等级1 普通用户2 高级用户3 vip用户4 管理员5 开发人员另一张公告表A,发布公告时,需要指定类型的用户能看到,如只给管理员发公告,或者 只给 普通用户,高级用户发公告,其他人看不到当然可以采用中间表的形式,每个公告存储该公告能访问的对应等级的user。今天我们采用另一种方法二进制位法,原理如下 设对应关系如下:...

vertx jsonArray jsonObject json指针

vertx jsonArray jsonObject json指针JSON1jsonobject 相当于一个Map<String,Object> , jsonArray相当于一个 List<Object>JsonObject构造方法,可以通过jsonString,构造,或者map构造。 ```java String jsonStrng = "{\"name\":\"小明\"}"; JsonObject j1 ...

vertx buffer类

vertx buffer类Buffer类vertx的Buffer接口实现类 BufferImpl 对netty的ByteBuf进行封装,隐藏了复杂的读写指针操作,改写了一些基本操作进行改写,如 read 操作 -> 移除了 write 操作 -> append get -> get set -> set copy -> copy slice-> slice 当然方便操作的同时带来的...

mybatis 找不到statement

mybatis 找不到statement “Mapped Statements collection does not contain value for xx “我发生这样的原因是因为我的扫描配置的是 ‘classpath:mapper/*Mapper.xml’ ,而我后面新建的mapper文件命名是,userMapperEx.xml 导致命名和通配命名不一致,扫描不到。在此记录一下。

thymeleaf 自定义表达式,静态方法

thymeleaf 自定义表达式,静态方法1.模板内置了一些方法,比如格式化时间的1${#dates.format(article.date,'yyyy-MM-dd HH:mm')}但有时候不满足我们的需求,需要自定义方法。2.需求,遍历list,拼接list中对象的某个字段,以逗号分隔如:List<People> list = new ArrayList<>();list.add(new People(...