java基础
文章平均质量分 56
天马行空-
学好基础知识才是最重要的。忌:好高骛远,眼高手低。
展开
-
JPA 同一方法多次操作单表数据导致数据不一致解决方案
jpa 在使用过程中会碰到缓存 ,当多次操作数据库 时会导致数据不一致,出现脏数据。原创 2023-01-04 11:01:03 · 955 阅读 · 0 评论 -
itextpdf 自定义字体
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.7</version> </dependency>字体库有两种后缀 ttc 和 ttf simsun.tt...原创 2021-10-29 18:02:54 · 1891 阅读 · 0 评论 -
java 编辑excel文件合并单元格边框显示问题
现象:边框显示不完整。解决方法:误区以为不用设置跨掉的单元格将单元格数量补全后 设置边框样式整个边框就完整了。实现完整代码:引入maven: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1..原创 2021-10-22 09:34:30 · 2909 阅读 · 0 评论 -
java.awt.print.PrinterException: Access is denied
场景:需要生成支付订单后自动调起打印机,打印订单信息处理方式: 客户收银电脑安装 tomcat 以服务的方式启动,线上调用本地接口实现自动打印问题: 当tomcat 设置成自启动服务时报错 java.awt.print.PrinterException: Access is denied手动点击exe 程序启动打印没有问题,猜测应该是启动程序 本身没有打印机的权限。解决方式:找到对应tomcat 服务 右键属性 选择 登录 设置一个有打印权限的用户来启动。问题得到解决。...原创 2021-09-22 18:01:27 · 1479 阅读 · 0 评论 -
生成二维码图片 插入 pdf
1原创 2021-09-22 17:25:42 · 846 阅读 · 0 评论 -
java 实现票据打印数字转繁体数字
private static String toChinese(String netWeight) { // 整数位 String[] s1 = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; String[] s2 = { "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千" }; String result = "";...转载 2021-09-06 14:36:43 · 186 阅读 · 0 评论 -
快销商品库存如何创建缓存
场景业务:一个商品在不同的地区的仓库的库存数量不同,而且会有对应不同批次,不同批次对应不同仓库商品,数量不同。变量: 商品id , 库存地址 , 批次( 用户来查询时是个区间值 例如: 20210901-202109010)示例数据:商品id 库存地址 批次 库存数量 1 10000 20210901 100 1 10000 200 同一个商品 分为带批次的和不带批次的商品 。用户下单看到的商品库存有两种查看方式:...原创 2021-09-03 09:51:44 · 299 阅读 · 0 评论 -
java 微信退款 读取远端云服务存储安全证书
背景公司是微服务架构 用docker 容器部署项目的配置文件都是做过配置的(这个配置比较复杂很多机器每次新增文件都得重新配置),于是想了个办法把微信支付证书扔云服务上去读取实现 /** * 代理ip地址 10.0.xx.xx */ @Value("${proxyHost:}") private String proxyHost; /** * 是否使用代理 开关 */ @Value("${proxySwitch:}") private boolean proxy原创 2021-04-02 14:36:07 · 345 阅读 · 1 评论 -
使用redis RedisAtomicLong 生成订单号
背景产品需求要生成有序的订单 YY+6位日期+4位序号由0001-9999组成 且每天都是从0001开始公司系统有部署多台服务,这需要一个有序的序列不能重复而且得保证获取时的原子性这里 我们考虑使用了redisIncr 这个命令Redis Incr 命令能将 key 中储存的数字值增一,这样就不会取到重复的编号。使用package com.redis.service.impl;import java.util.concurrent.TimeUnit;import l...原创 2021-04-01 17:59:23 · 4399 阅读 · 0 评论 -
启动tomcat时不出现日志弹框
需求 : 1、需要自动打印这要调用客户电脑上的打印机但程序是web 网页程序 2、调用 地磅串口获取 地磅的值解决方案: 因为这两功能使用者少 所以实施时去客户的电脑提前安装本地的java服务 这里我就写了一个java 小程序去调用本地的打印机 和 地磅串口程序 提供给 网页程序调用本地的接口问题: 1、tomcat 启动时会弹一个框打印日志 要运行在客户的电脑上还是不太方便 ...原创 2021-03-12 10:43:31 · 716 阅读 · 0 评论 -
java 调用dll 库文件
loadometer.dll 文件名称package com.weighbridge.util;import com.sun.jna.Library;import com.sun.jna.Native;public abstract interface JnaLibraryextends Library{public static final JnaLibrary INSTANCE = (JnaLibrary)Native.load("loadometer", JnaLibrar.原创 2021-03-05 16:13:01 · 1189 阅读 · 0 评论 -
JAVA实现调用打印机打印PDF(多页)
参考博客:https://blog.csdn.net/weixin_43665029/article/details/104330175maven引用地址 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId.转载 2020-12-07 16:31:17 · 2998 阅读 · 0 评论 -
java 动态生成pdf 页码
先看效果图这里说明一下这个页码是独立的覆盖在头部上的,不是写在头部里面需要引用的核心包有 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.1</version> </dependency> <dependency>.原创 2020-11-30 11:26:47 · 1563 阅读 · 0 评论 -
http,https 请求配置代理的常见方式
常用的java 发送http请求的方式有两种1、通过HttpsURLConnection 自己去发送请求2、 用spring框架提供的RestTemplate (import org.springframework.web.client.RestTemplate;) 对象发送请求第一种方式配置代理服务器关键代码: int PROXY_PORT = 80;// 改成你自己的代理服务器端口 String PROXY_HOST = "127.0.0.1";// 改成你自己的代理...原创 2020-11-18 18:09:57 · 7757 阅读 · 0 评论 -
An attempt was made to call a method that does not exist. The attempt was made from the following lo
***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call a method that does not exist. The attempt was made from the following location: springfox.documentation.spring.web.scanners...原创 2020-08-11 15:48:12 · 1717 阅读 · 0 评论 -
java中模拟http(https)请求的工具类
在java中,特别是java web中,我们经常需要碰到的一个场景是我们需要从服务端去发送http请求,获取到数据,而不是直接从浏览器输入请求网址获得相应。比如我们想访问微信接口,获取其返回信息。在这里需要用到java的HttpURLConnection类,此类可以模拟http请求,获取到的响应以输入流的形式被程序所取到。现将相关方法整理为工具类。package com.m_gecko.util;import java.io.BufferedReader;import java.io.IOE转载 2020-08-07 16:57:05 · 1579 阅读 · 0 评论 -
java反序列化 PHPSerializer 序列化的对象参数描述
maven 引用的包<!--反序列化 php--> <dependency> <groupId>org.sction</groupId> <artifactId>phprpc</artifactId> <version>3.0.2</version> </dependency主要的操作方法: public static Map<String, Ob原创 2020-07-01 08:20:26 · 875 阅读 · 0 评论 -
Spring data jpa Specification 条件查询 时间段查询 -笔记
jpa中最好用的时间段查询方法@Override public Page<泛型> findRecordList(int couponDetailId, int pageNum, int pageSize, String startTime, String endTime) { try { //排序规则和分页 Sort...转载 2020-03-18 20:43:49 · 7610 阅读 · 0 评论 -
计算时间差获取大概的时间 如:多少秒前,多少分钟前
public static String formationDate(Date date) { String dateString = ""; // 获取系统当前时间 Date now = new Date(); try { long endTime = now.getTime(); long currentTime= date.getTime();原创 2016-04-14 11:17:22 · 2679 阅读 · 1 评论 -
list特殊场景使用的方法
public static void main(String[] args) { String [] aa = {"1","2","3","4","5"}; //向list批量注入值 List list = Arrays.asList("1", "2", "3", "4", "5"); //数组转list list = Arrays.asList(a转载 2018-01-16 14:06:21 · 227 阅读 · 0 评论 -
java 从指定文件夹搜索符合条件的文件
一下是代码:import java.io.File;public class test { public static void main(String[] args) { // 这是需要获取的文件夹路径 String path = "D:/changba20180127/music/"; getFile(path, 0); } /* * 函数名:get转载 2018-01-31 11:52:45 · 2246 阅读 · 0 评论 -
java 守护线程
守护线程作用: 当所有线程执行完成后才结束进程public class Test { public static void main(String[] args) { Thread1 t = new Thread1(); t.setDaemon(true);//是精灵守护线程,此设置必须在start之前设置 t.start(); System.out.pr转载 2018-01-22 17:30:40 · 248 阅读 · 0 评论 -
Mybatis的if test字符串比较 报NumberFormatException错误
这里我在mybatis 的xml 文件中没有指定参数类型, prductType 是个String类型的参数 默认为“0” AND a.product_type = #{productType} 执行查询的时候 抛出了这个异常Error querying database. Cause: java.lang.NumberFormatException: For i转载 2017-11-18 14:03:58 · 1469 阅读 · 0 评论 -
Eclipse进行远程调试linux 环境的tomcat配置
1、tomcat在linxu下。 在tomcat的catalina.sh文件的正文的第一行添加: declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999"这里 9999 是端口号,如果你的这个端口没被使用,才能使用(端口占转载 2017-11-06 15:54:45 · 419 阅读 · 0 评论 -
编程的智慧
编程的智慧编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。然而由于软件行业喜欢标新立异,喜欢把简单的事情搞复杂,我希望这些文字能给迷惑中的人们指出一些正确的方向,让他们少走一些弯路,基本做到一分耕耘一分收获。反复推敲代码有些人喜欢炫耀自己写了多少多少万行的代码,仿佛转载 2017-11-10 16:43:47 · 256 阅读 · 0 评论 -
对象转字符串时重复对象变为引用地址
起因: redis的数据集 只支持字符类型的数据,所以object转为字符串时 出现引用的问题说明方法来源:String com.alibaba.fastjson.JSON.toJSONString(Object object) Map user_info = new HashMap(); user_info.put("user_info", "1"); List> lis原创 2018-01-18 16:12:16 · 629 阅读 · 0 评论 -
java 对文件内容进行替换工作
读取文件代码如下: File file = new File("C:/Users/Administrator/Desktop/test1.json"); try { String content = FileUtils.readFileToString(file, "utf-8"); System.out.println(content); } catch (Exceptio...原创 2018-03-02 17:40:13 · 26680 阅读 · 3 评论 -
java 关于字典排序的方法
如对参数顺序有着要可以采用:字典排序下面提供两种字典排序的方法:1、 针对list 集合进行字典排序private static void SortList() { ArrayList<String> arl = new ArrayList<String>(); arl.add("D"); arl.add("a"); arl.add("E"); arl...转载 2018-03-19 14:05:56 · 13925 阅读 · 1 评论 -
运行jar文件启动的项目后控制台不断弹出日志信息
这个打成jar文件后面我有修改指定启动那个类,如果不知道怎么配置jar文件的朋友可以先看第一片博客:https://blog.csdn.net/qq_27292113/article/details/78403363这是直接在linux系统下运行java的接口应用java -jar spring-boot-0.0.1-SNAPSHOT.jar 执行后台程序 ,访问后控制台不断弹出日志。这个是因为没...转载 2017-12-12 17:20:30 · 5655 阅读 · 0 评论 -
Java bean 转 map 的通用方法
造轮子希望能为大家节约点时间。package util;import java.util.Iterator;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;public class Util { /** * @param args */ public stati...原创 2018-09-19 10:52:29 · 3986 阅读 · 0 评论 -
HTTP与HTTPS的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的...转载 2018-12-07 18:37:32 · 387 阅读 · 0 评论 -
Spring aop的实现原理
简介 前段时间写的java设计模式--代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。 说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需要为部分对象引入公共部分的时候,OOP就会引入大量重复的代码。例如:日志功能。 AO...转载 2019-05-08 19:56:51 · 175 阅读 · 0 评论 -
Java SPI机制
SPI机制简介SPI的全名为Service Provider Interface.java spi机制的思想: 系统里抽象的各个模块,往往有很多不同的实现方案,在面向的对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现...转载 2019-09-02 17:17:14 · 12851 阅读 · 1 评论 -
eclipse java程序打包成jar 引用外部jar包
测试代码(这里是个maven项目):package testLog;import java.text.SimpleDateFormat;import java.util.Date;import java.util.logging.Logger;public class TestMain { static Logger logger = Logger.getLogger("Log转载 2017-10-31 14:52:38 · 3090 阅读 · 0 评论 -
优化redis 分页(二)
这篇文章是将redis 的分页封装好了的看之前要先对整个存储结构有一个清晰的概念 看懂:http://blog.csdn.net/qq_27292113/article/details/51926891 的图package redis.test;import java.util.ArrayList;import java.util.Date;import java.util原创 2017-01-21 14:49:56 · 4522 阅读 · 6 评论 -
java 修改指定路径下所有文件名称
起因:保存的文件太多合并的时候文件名相同会覆盖所有需要一个可以全部重命名的工具。注意: 在修改文件名称的过程中要指定文件存放的位置否则所有文件会归到项目路径下面。下面的例子是修改文件名称放回到当前目录。package test;import java.io.File;import java.util.UUID;public class UpdateFi转载 2016-10-07 17:17:54 · 6272 阅读 · 0 评论 -
java程序代码实现手机号码归属地查询
import java.io.IOException;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;public class Test {public static void main(String[] args) throws转载 2016-10-13 10:26:35 · 6148 阅读 · 3 评论 -
java 中的 split 方法要注意
split 分割字符串中的参数如果是特殊字符很容易出问题。实际上 参数是个正则表达式。 比如: String string = "192.168.128.33"; String[] A = string.split("."); for (String strings : A) { System.out.println(stri转载 2016-10-22 16:36:03 · 507 阅读 · 0 评论 -
java中自定义排序 Comparison method violates its general contract异常
解决这个异常很简单,只需要加上try catch即可。 try { //针对counter 排序 //对容器进行降序排序的函数 Collections.sort(videoList,couSrot); } catch (Exception e) { }@SuppressWarnings("unch原创 2016-09-12 21:49:15 · 911 阅读 · 0 评论 -
常用正则表达式
这20个正则表达式,让你少写1,000行代码正则表达式——古老而又强大的文本处理工具。仅用一段简短的表达式语句,就能快速地实现一个复杂的业务逻辑。掌握正则表达式,让你的开发效率有一个质的飞跃。正则表达式经常被用于字段或任意字符串的校验,比如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|\\/)(\\d{1,转载 2016-06-12 21:43:06 · 670 阅读 · 0 评论