自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java线程 同步与异步 线程池

java线程 同步与异步 线程池1)多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线程的处理的数据,而B线程又修改了A线程处理的数理。显然这是由于全局资源造成的,有时为了解决此问题,优先考虑使用局部变量,退而求其次使用同步代码块,出于这样的安全考虑就必须牺牲系统处理性能,加在多线程并发时资源挣夺最激烈的地方,这就实现了线程的同步机制同步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A线程请求不到,怎么办,A线程只能等待下去异步:A

2021-06-03 16:46:27 1522

原创 springboot 微服务 配置文件相关

现在主流的架构项目都是采用springboot, 越来越多的大中型项目架构采用微服务方式, 最近几天在使用目前比较前沿的技术搭建新的微服务架构, 借此机会整理了一下相关配置文件的一些内容, 一方面是为了做一个备份记录, 另一方便也是希望能帮助到同行的码友们!以下描述中均是以各种...

2021-04-14 20:52:00 560

原创 springboot 自定义注解 验证参数类型并提示准确异常

最近做项目任务时, 因前端请求接口时未进行参数验证, 因此一些数值类型参数传递数据被录入了String类型, 服务端提示"参数解析失败", 测试提了个提示信息不准确的bug, 虽然前端加一下验证, 后端接口也拦截掉了异常, 但既然提出最好可以处理一下, 当然要看看能不能解决此问题, 将最符合的提示返回给前端. 首先, 如果需要最准确的提示信息, 那么就需要用到自定义注解了, 在自定义注解中填入相应的提示信息/** * 数据绑定异常提示语 */@Target({ ElementType.FIE.

2021-04-14 14:17:00 2957

原创 java 图片上绘制文字Graphics2D linux 中文乱码

本地调用接口在图片上绘制中文可以生成正确图片, 在linux环境中调用接口显示豆腐块中文乱码在本地或网络上找到相应免费字体文件 比如: NotoSerifCJK-Regular.ttc在linux环境中执行以下操作1.创建chinese文件:mkdir /usr/share/fonts/chinese2.将NotoSerifCJK-Regular.ttc文件存储到路径下:/usr/share/fonts/chinese/3.进入home目录:cd4.执行生成字体缓存并刷新命令:mkfontsc

2021-01-25 17:09:34 474

原创 java 图片上绘制文字(综合) Graphics2D

图片上绘制文字, 设置颜色, 字体尺寸大小, 位置等import lombok.Data;import lombok.extern.slf4j.Slf4j;import org.apache.commons.io.output.ByteArrayOutputStream;import javax.imageio.ImageIO;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import jav

2021-01-20 17:00:59 1406

原创 for(),for迭代器,forEach(),stream(),parallelSteam() 执行效率基本对比结果

以下内容为个人亲自执行结果,编写只为记录与分享,若有不同可直接留言,共同交流,共同进步!后续会不断完善!测试环境win10 4核20Gjdk1.8.0_231IDEA2019.3分别执行10条, 100条, 100条, 1000条, 10000条, 100000条, 1000000条数据测试结果分析执行循环内容时间较长, 超过1s左右时, 使用parallelSteam效率最高forEach()不管是循环内容时间长短消耗时间都是最长的, 在内容执行时间短时,执行所消耗是其他方法的5-20

2020-12-25 14:04:14 1225

原创 Springboot集成WebSocket与定时任务

测试工具推荐使用 http://ws.douqq.com/网上有很多关于WebSocket用法的文章,但是有一些内容错误或者代码不全的,这里做个记录,方便自己记忆。首先介绍一下业务需求背景,在一个商品购物系统中,某些订单需要运营后台进行审核通过后才可进行提货等后续操作,这就对及时的获取到是否存在待审核订单有较高的要求;这样就需要后端与前端通知做到紧密互动,在此就不介绍前端轮询请求后端数据与WebSocket方式的优缺点对比了。需要向前端有审批权限的管理员发送通知的有已下三个场景1. 运营后台管理员登

2020-12-24 17:17:03 805 1

原创 mysql not in 索引

组合索引单列索引 not in 可生效, ()中内容过长不生效复合索引 中not in 不生效mysql 自动优化 会将 = 字段排列在前, 其他同级别会进行自主调整, 总之那个索引能过滤掉更多数据会使用那个索引

2020-09-30 17:33:54 2550 1

原创 java mybatis org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NullPointerException### Cause: java.lang.NullPointerException at org.mybatis.spring.MyBatisE

2020-09-24 12:00:34 1441

原创 JSONObject与各数据类型转换(通用)

Map<String, String> params = JSONObject.parseObject(obj.toJSONString(), new TypeReference<Map<String, String>>(){});

2020-09-23 15:14:02 5712

原创 Java区分大小写和mysql不区分大小写

Java区分大小写和mysql不区分大小写在开发的过程中遇到了一个小坑,特此记录。在根据用户名查询客户的时候,比如zhangsan和ZHANGSAN同时查出来,原来是Java区分大小写和mysql不区分大小写造成的。不要轻易修改数据库。解决步骤:在插入用户名的时候直接全部插入为小写,不管用户输入的是大写还是小写,直接转化为小写(当时的开发规定),//toLowerCase()方法将String转换为小写String loginName=userBean.getLoginName().toLo

2020-09-23 14:28:58 695

原创 用freemarker生成word模板

需求:给文书统一生成一个搞头文件,文件内容基本是一样的。用freemarker生成docx文档一、生成一个docx结尾的word模板,然后把文档的后缀docx改成zip,zip里会有生成很多文件。如下图:然后打开word文件夹,如下图:把document.xml拿出来,把后缀xml改成ftl,然后把里面的内容(在线格式化xml)格式化一下,把一些可变的参数做成变量。二、在resources文件夹下创建wordTemplates文件夹,里面放刚才的zip和改名的gtwj.ftl文件。三、替换

2020-09-01 16:52:09 660

原创 pdf文件合并

需求:多个pdf合并成一个pdf一、pdf合并的类:import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.pdfbox.io.MemoryUsageS

2020-09-01 16:25:09 249

原创 word文档转pdf

需求 :把docx文档转pdf文件我的项目是springboot项目:一、在项目resources里增加license.xml,内容如下:<?xml version="1.0" encoding="UTF-8"?><License> <Data> <Products> <Product>Aspose.Total for Java</Product> <Product>Aspose.

2020-09-01 15:42:59 453

转载 java 线程池(ExecutorService与Spring配置threadPoolTaskExecutor)

一、java ExecutorService实现创建ExecutorService变量private ExecutorService executor = null2.执行对应任务时,首先生成线程池executor = Executors.newFixedThreadPool(线程池大小);3.循环执行线程 for (String str : ids) { executor.submit(new Callable<Void>() {

2020-08-19 10:58:40 563 1

原创 IDEA Invalid bound statement (not found) 工具引起

今天在开发项目时遇到了一个让我翻车坑, 具体是什么呢?让我来描述一下啊, 最近在做一个新项目-中台服务系统采用的是微服务架构, 框架新搭建的, 为了快捷开发,我们采用了springboot+mybatisPlus中的代码生成器, 由于我做的一个微项目中涉及到的业务非常复杂,为避免后期会涉及到个别表结构的改动, 因此没有一次生成此微项目所有涉及到的业务表对应的代码, 包名是自己创建的, 这就是问题背景5555以下开始讲述问题情况在开发过程中大部分方法都是尽量用mybatisPlus中Wrapper这种可以

2020-07-27 10:40:49 310

原创 java springboot+mybaitsPlus 自动化生成代码, 自定义生成

随着编码工具的越来越便捷与强大, 越来越多的重复性工作被工具自动化所代替,(研发工具的程序员正在一点一点干掉编写普通业务类代码的程序员,尤其是企业级小微级项目开发, 便捷了高效了,不进步慢慢就被替代了, 相煎何太急啊!)好了,其他的就不多说了,下面要记录的是springboot+mybatisPlus自动化生成代码, 官网中有完整的例子, 咱也就不在这里赘述了, 想更深入研究了解的可以直接查看官网https://mp.baomidou.com/guide/generator.html那为什么还要写这篇

2020-07-08 18:04:31 700 1

原创 java 根据IP获取城市与经纬度(第二种)

此方法使用的是百度地图注意:1. 本次采用的是免费受限普通IP方式, 不够精准, 如有更精确需求可以 花钱 购买高级服务2. 普通IP方式范围目前仅限定国内IP定位3. 需要注册获取相关秘钥ak不多说, 采用百度地图调用方式相对更加简单, 直接上代码package com.example.demo.utils;import com.alibaba.fastjson.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFact

2020-07-02 18:23:13 1419

原创 java 根据IP获取城市与经纬度(第一种)

最近需要做一个拨打电话的功能, 调用第三方接口进行拨号, 而接口中要求经纬度为必传字段, 虽然可以通过app或小程序端获取, 但还是想看看能否通过java来获取到这些具体数据值, 以下为本人查找资料与文档总结出第一种实现方案!此方法需要用到 GeoIP - > 下载地址注意:1. 下载使用 GeoIP需要简单的注册一下2. GeoIP官网上有很多具有倾向性的完整数据, 但有部分是收费的!3. 此处摘取GeoIP官网中部分需要注意的内容*GeoLite2免费可下载数据库*由于即将颁布的数据

2020-07-02 15:10:06 2429

转载 Java中byte类型的范围

一:char的初始化char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。Java中使用Unicode的原因是,Java的Applet允许全世界范围内运行,那它就需要一种可以表述人类所有语言的字符编码。Unicode。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。因为char是

2020-06-28 11:30:42 1579

转载 Java transient关键字

哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这

2020-06-23 15:34:22 131

转载 java中关键字volatile的作用

用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)=分割线1=========版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明http://aleung.blogbus.com/logs/32090434.html在Java内

2020-06-23 15:27:34 401

原创 拼音字母搜索匹配汉字

最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌、类目、关键词等数据,从而进行筛选商品汉字转换拼音部分在上篇文章已有较为详细的描述,本文中不在赘述!根据拼音搜索汉字时存在以下几种情况只有拼音 例如: k 、ko 、kou 、kouh 、kouhong只有汉字 例如:口 、口红前面汉字后面字母 例如:口h 、口hong、口红s前面字母后面汉字 例如:kou红、k红汉字与字母多次交叉 例如: kou红se、口hong红需求中只需要前列精准匹配,后续模糊/

2020-05-20 17:17:37 2710 1

原创 java 汉字转换全拼、首字母拼音

最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌、类目、关键词等数据,从而进行筛选商品本片内容只记录汉字转换拼音方案一:在mysql数据库中编写函数,此方法存在两个弊端弊端1. 现在很多公司编码设计规范中不允许使用函数、存储过程、视图等,在现在的互联网时代经常会因为项目的需要进行分库分表或数据库迁移拆分等,使用这些容易出现问题,且存储过程等难以追查和维护弊端2. 在数据库中存在很多意想不到的字符,只凭借函数过滤会造成大量代码的编写,难度过高,本人在此次任务需求中在

2020-05-20 16:48:06 709

原创 ConcurrentLinkedQueue和线程结合使用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入ConcurrentLinkedQueue和线程结合使用欢迎使用Markdown编辑器你好! 这是你第一次使用 Mark

2020-05-11 14:36:17 467

原创 mysql 多层次多条件排序

首先说一下最近接到的一个需求要求: 在商品详情页显示类似商品列表, 商品详情类别与查询结果要求 1. 类别相同 2. 第一优先级(供应商与品牌均相同) 3. 第二优先级(供应商相同品牌不同) 4. 第三优先级(供应商不同品牌相同) 5. 第四优先级(供应商与品牌均不相同) 6. 以上同一优先级时按销量倒叙 7. 每页显示20条记录表结构及相关字段如下: 表名: 商品表: product 字段: 类别: category_id, 商品编码: spu_code, 供应商编号: supp

2020-05-09 16:24:20 1216 1

原创 java 常用日期转换与日期计算综合

整理出常用的一些日期转换及日期计算比较等, 部分通用方法未全部列出, 若有遗漏后续会不断更新.亲测可用package com.lx.benefits.bean.dto.yx.utils;import com.apollo.common.enums.base.DatePatternEnum;import com.apollo.common.exception.BusinessExcepti...

2020-04-29 12:00:04 234

原创 java 各种数据类型的互相转换(二)

本片文章主写日期类型相关及扩展利用java获取当前时间,并进行格式转换,时间格式和String类型互相转换注意:SimpleDateFormat是非线程安全的,FastDateFormat是线程安全的日期时间转换为String类型public static final String DATETIMEFORMAT = "yyyyMMddHHmmss";public static final...

2020-04-28 20:02:07 242

原创 java 各种数据类型的互相转换(一)

一、数据类型基本类型有以下四种:int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、float长度数据类型有:单精度(32bits float)、双精度(64bits double)boolean类型变量的取值有:ture、falsechar数据类型有:unicode字符,16位对应的类类型:Integer、Flo...

2020-04-28 18:21:33 302

原创 查询结果过滤后补全数据

查询结果过滤后补全数据查询结果过滤后补全数据最近在对接京东商品, 需要勾选只显示有货条件进行筛选, 众所周知的一个问题是京东是在各个地区有独立的仓储, 而有些货物并不是在所有仓库中都有备货的,比如咱们国家的钓鱼岛!难点在设计过程中需要考虑一下几个难点比如查询第一页数据是10条,而查询出10条数据后, 通过调用京东接口发现有3条数据是无货数据, 这个时候如果从第二页中拿取数据,不确定需要...

2020-04-26 18:24:11 1074

转载 HttpURLConnection与HttpClient浅析

转自: GET请求与POST请求HTTP协议是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。在介绍HttpURLConnection前,我们还是再来说一下URL请求最常用的两种方式:GET请求与POST请求。GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&a...

2020-04-01 16:07:53 180

原创 签名验证

签名验证签名方式要求: 将第三方传递过来的参数数据进行字典排序并在前后两端均加上appSecret,得到的字符串进行 md5签名(第三方传递过来的签名sign不进行排序与签名)单层简易数据方式请求数据示例:{“orderId”: “SS111111111”,“timestamp”: “1584687954”,“status”: “7”,“sign”: “11231asdasda”...

2020-03-31 17:54:25 429

空空如也

空空如也

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

TA关注的人

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