
java
文章平均质量分 62
rgbhi
空无一物,无限可能
展开
-
DozerBeanMapper转换枚举类有问题
com.github.dozermapper.core.converters包下的类PrimitiveOrWrapperConverter里,根据目标属性值的类,拿取具体的转换器。到此就很明白了, 比如我来源类里,对应的值是1,这玩意,就会将枚举类里,排第2个的值返回来,跟你定义的值无关,跟枚举类里的值的。就是它把枚举类里的内容,拉成了一个List,来源的值,作为这个List的index去拿转换后的值。如果你枚举类的值与排序错乱了,就G了,大家需要注意啊。使用转换工具的下列方法,对枚举类的转换,是错误的。原创 2024-11-19 15:50:05 · 697 阅读 · 0 评论 -
类、属性、方法、注释、反射
获取对象的类//获取类,随便什么对象,调用getClass方法Class clazz=Object.getClass();获取类的所有字段//Class类型调用方法,获取所有类里的字段Field[] fieldList=clazz.getDeclaredFields()获取类的所有方法//类调用该方法,获取类里的所有方法Method[] methods=clazz.getMethods()判断字段上是否有注解//Field类型调用isAnnotationPresen原创 2021-11-02 14:59:55 · 113 阅读 · 0 评论 -
WeWorkFinanceSdk Can‘t find dependent libraries
最近在做微信会话数据的存档,需要使用微信官方提供的SDK,但是死活导不进去语义很明显,找不到依赖,但是这个可能有多种原因1、首先看看是否导入了正确的文件夹System.out.println(System.getProperty("java.library.path"));打印出相应的地址,判断文件是否已经放在路径下2、如果还报找不到依赖,那么可能这个文件本身有问题我不是说它的写法有问题,而是dll文件内部可能有依赖,打包dll文件的环境,如果跟我们本地的环境不一样,dll可能就引原创 2021-10-21 15:21:36 · 1953 阅读 · 2 评论 -
Java springboot主线程拆分多子线程任务,完成后继续主线程
开发中遇到了一个问题,我们数据库里的数据是加密过的,读取、计算等等操作,都会有对原始数据进行加解密的操作。问题是单次操作数据量有几千条,如果是单线程进行解密的话,时间实在是有点慢。这是不能忍受的,所以,我们需要对其进行并发加解密。 我的具体思路是这样的,因为加解密的动作,其实是对一个长List进行单项的加解密的动作。可以将这个长List进行分段区分,生成多个子线程的任务,每个子线程只执行长List中的一段区间内的加解密,多个子线程都完...原创 2021-10-15 15:05:09 · 2444 阅读 · 3 评论 -
Jedis线程池的实现原理(二)
Jedis线程池的代码编写,也是基于池化技术的基础上的,只不过这里的对象池化中的对象,变成了线程罢了。主要讲述池化技术里的各种方法调用。原创 2021-06-09 16:50:20 · 663 阅读 · 1 评论 -
Jedis线程池的实现原理(一)
基本的类关系我们从最底层的AutoCloseable接口开始package java.lang;/** * 一个对象可能会持有一份资源(例如文件、socket句柄)直到该对象被关闭。 * 当实现了autoclose接口的对象在try-with-resources语法糖的参数()里被声明的话,这个对象 * 在try语句结束后,会自动调用close()方法,关闭对象,避免资源枯竭或者其他报错的出现。 * @author Josh Bloch * @since 1.7 */public i原创 2021-06-07 17:53:07 · 587 阅读 · 2 评论 -
ClassLoader类加载器
public abstract class ClassLoader {}A class loader is an object that is responsible for loading classes. Theclass ClassLoader is an abstract class.一个类加载器是什么?顾名思义,是一个用来加载类的对象。ClassLoader 是一个抽象类。Given the binary name of a class, a class loader should原创 2021-06-06 21:37:55 · 252 阅读 · 2 评论 -
Redis分布式锁的简单实现
核心是SETNX基本命令,如果键存在的话,就返回0,不存在,则返回1。尝试获取锁public Jedis tryLock(String key, int timeOut) { //从jedis线程池里拿到一个jedis链接管理 Jedis jedis = jedisPool.getResource(); while (true) { if (jedis.setnx(key, key) == 1) { jedis.原创 2021-06-01 13:20:23 · 97 阅读 · 0 评论 -
Springboot 外部化配置
Property values can be injected directly into your beans by using the @Value annotationaccessed through Spring's Environment abstraction or bound to structured objects through@ConfigurationProperties如何在s原创 2021-06-01 13:07:12 · 359 阅读 · 0 评论 -
Springboot 获取运行时HTTP端口
You can access the port the server is running on from log output or from the ServletWebServerApplicationContext through its WebServer. The best way to get that and be sure that it has beenn initialized is to add a @Bean of type ApplicationListener <S原创 2021-05-28 12:55:04 · 387 阅读 · 0 评论 -
手把手解析ThreadLocal
ThreadLocal大家没听过,也应该是用过的。Thread——线程Local——本地,具有局部自身限定意味联合起来的意思,就是线程内部内存的意思,跟线程一一对应,不同线程间不联通。我们先来看看,这货是在哪里调用的。Thread这个类,大家应该挺熟悉的吧,继承了Runable,new 一个Thread(),就是把一个Runnable,赋值给Thread类里的target这个属性,还有其他杂七杂八的配置,最主要的还是赋值target。Thread类的run,实际上,也只是target这个原创 2021-05-17 18:03:22 · 245 阅读 · 3 评论 -
线程的多种状态
线程有几种状态?我用的只有2种,运行跟阻塞,其他都是线程池在管理。线程初始化归我管吗?就绪状态归我管吗?线程挂掉归我管吗?不归你管也得知道,行吧,来扯扯吧其实有五种状态,从生到死。不过现在因为都是用线程池了,线程不是那么容易死掉了,也不是那么容易新建了。新建——出生咱得知道,线程这货比较占资源,在JVM里,每个线程都有自己的名字,有自己的地盘,懂?这是排面。JVM会给它分程序计数器(各个线程私有的,互不影响),虚拟机栈(也是线程私有的),连垃圾,也都只是在java堆跟方法区那边收的,都不原创 2021-03-18 23:29:26 · 107 阅读 · 1 评论 -
Java 发送公众号(服务号)统一服务消息(原模板消息)
原模板消息接口,微信已经废弃。改为统一服务消息接口,需要用户手动订阅,后端才能发送。小程序端订阅消息文档需要注意的是,这个接口的能力是公众号(仅认证服务号)的能力,(原)模板消息需要在公众号配置。小程序端订阅时,需要输入模板id,请先自行在公众号管理后台进行配置。开始我们这边来使用微信开发者联盟的包github地址来进行开发,他们里面都封装好了调用(重试啊,报错啊什么的,都处理过了,不需要咱担心),用起来比较方便。maven引入<dependency> <groupI.原创 2021-03-03 18:04:09 · 1129 阅读 · 2 评论 -
Java 生成导出Excel文件
有时候我们需要处理数据源数据,将其转成excel进行导出,那该如何做呢?首先我们需要引入工具类,这里使用autopoi,也可以使用其他工具类,贴一下autopoi教程,有兴趣深入的可以去看看,但是一般咱们的操作比较简单,看下面就可以了。<!-- AutoPoi Excel工具类--> <dependency> <groupId>org.jeecgframework</groupId> <原创 2021-03-02 15:57:08 · 450 阅读 · 2 评论 -
Java并发编程实战 ListHelper为什么是线程不安全的
已经有读者搬过来了——书中内容描述看了该同学的分享,我还是没懂,一叶障目了,哭。一直困扰我的是,ListHelper的所有方法是synchronized,要调动这些对象方法,只能一个一个来,为啥list还是不安全的呢?难道还有没有拿到ListHelper对象锁,就能去搞list的方法吗?还真有。因为list是 public 的。这意味着,你new一个ListHelper,可以直接ListHelper.list就能调用到list,而根本不用拿到ListHelper的内置对象锁。给ListHelp原创 2020-12-23 16:44:08 · 321 阅读 · 0 评论 -
Java svg图片转png图片
Java svg图片转png图片比较简单,主要使用batik包里的batik-transcoder模块,网上的教程引的包太多了,只是转化的话,这个包就够了。你们引用的时候,记得查一下version,之前我引用的包太老了,项目就起不来了。 //pom引入该包 <dependency> <groupId>batik</groupId> <artifactId>batik-transcoder</art原创 2020-12-03 20:39:48 · 3741 阅读 · 3 评论 -
Java设计模式(刘伟)的思考题个人回答2
在组合模式结构图中,如果聚合关联关系不是从Composite到Component的,而是从Composite 到Leaf的,如图11-4所示,会产生怎样的结果?我的回答:【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。这个层级关系,似乎有点问题。如何编码实现图11-9中的“公司”类?我的回答:继承抽象类,定义集合,用于储存单位类型的成员。然后实现添加删除获得定义的方法。能否在装饰模式中找出两个独立变化的维度?试比较装饰模式和桥接模原创 2020-07-08 17:46:07 · 1768 阅读 · 0 评论 -
Java设计模式(刘伟)的思考题个人回答
在简单工厂模式中增加新的具体产品时是否符合“开闭原则”?如果不符合,原有系统需作 出哪些修改?我的回答:不符合“开闭原则”,如果要新增一个具体产品类,就需要改变工厂类。在静态工厂方法中,用反射构造具体的产品类。工厂方法模式中的工厂方法能否为静态方法?为什么?我的回答:意思是具体工厂类实现的工厂方法为静态方法?class ConcreteFactory implements Factory { public Product factoryMethod() { //相当于这段代码写死呗,当然原创 2020-07-05 00:03:13 · 1937 阅读 · 0 评论