![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java记录
记录java日常
景松CODING
这个作者很懒,什么都没留下…
展开
-
linux环境排查线程状态
首先确定部署在什么环境中,如果是docker部署,需要先进入docker容器内,否则无法找到进程。原创 2023-02-08 13:18:21 · 429 阅读 · 0 评论 -
MySQL触发器
的判断,否则在你入参有值的情况下,触发器也会自动生成一个uuid,这一点在同步数据时,容易造成混乱。oracle中一些自增id、自动时间戳等可以使用mysql中的触发器实现。项目需要,将oracle项目迁移到mysql上去。原创 2023-01-30 20:45:52 · 147 阅读 · 0 评论 -
window环境下mysql忘记密码或者原正确密码无法登录
注意:5.7版本的密码字段是authentication_string。5.6的是password,其他版本需要自己去表里看哪个字段存密码。找到mysqld配置项,在下边增加 skip-grant-tables。在C盘地址栏输入“%ProgramData%”找到名为“mysql”库里的user表。回车后,在目录中找到MySQL文件夹。如果安装目录没有,说明找的不对。去任务管理器-服务中关闭即可。去任务管理器-服务中启动即可。以window环境为例。原创 2022-10-19 17:02:10 · 2289 阅读 · 0 评论 -
解决非事务方法调用事务方法事务不生效问题
我们如果按原来方法调用,执行完A方法后,调用还是a方法内的insert方法。由于A类的a方法中涉及到切换数据源,由于事务的存在,数据源切换不生效。为了解决这个问题,将数据入库部分单独写成一个方法(insert),并用事务注解标注。a方法去掉事务注解,并在a方法内完成数据源切换,切换后再调用insert方法,可以实现数据源的正常切换。2、a方法调用insert前,从AOP的上下文中获取当前代理对象,使用代理对象调用insert方法。调用insert方法时,使用代理对象内的insert方法,即可开启事务。原创 2022-10-11 20:04:08 · 740 阅读 · 0 评论 -
springmvc返回字符串额外多了双引号的问题
通过controller控制器请求数据时,返回的数据多了双引号。可能原因是,返回的数据是字符串,或者非标准的json格式。而控制器被注解返回json数据(即@RestController)处理办法,可以使用HttpServletResponse写出数据,不使用return返回数据。 @PostMapping("/abc") public void response(HttpServletResponse response) { // 返回原创 2022-04-07 11:16:11 · 2641 阅读 · 0 评论 -
关于nacos可以注册上服务,但是获取不到配置文件的问题
1、检查server-addr路径最后不可以带“/”2、extension-configs中的data-id后边不加后缀名,后缀名在file-extension配置原创 2022-02-28 16:43:03 · 1416 阅读 · 0 评论 -
idea中maven依赖红色波浪线,或无法下载到仓库
maven点击刷新后,新添加的依赖没有下载到仓库中。导致红色波浪线或者无法添加pom依赖。查看是否把maven开启了离线模式。关闭离线模式重试。原创 2022-02-15 17:33:15 · 235 阅读 · 0 评论 -
linux环境下指令替换jar包中的文件
一、找到文件在jar包中的路径jar -tvf XX.jar grap | xxx.class得到路径A。二、将查找到的路径解压出来jar -xvf XX.jar 路径A三、将新文件替换到目标路径下cp 新xxx.class 路径A/四、将替换后的文件夹压回jar包jar -uvf XX.jar 路径A...原创 2022-01-14 11:17:56 · 2557 阅读 · 0 评论 -
注解抑制代码重复警告
@SuppressWarnings("Duplicates")可放类上,也可以放方法上。原创 2022-01-11 11:09:36 · 1806 阅读 · 0 评论 -
基于lambda的文件读取工具类
基于lambda的文件读取工具类原创 2021-12-23 14:12:31 · 450 阅读 · 1 评论 -
java 连接mysql时,报错Communications link failure
不一定适用所有情况,就像我也找了十几篇博客,都没有解决我的问题一样。只当做参考,拓展解决问题的思路。项目启动,与mysql做交互时,一直报错。手动编写jdbc连接,也同样报错。在根据网上建议,更改超时时间、ip限制、校核驱动版本等操作后,仍然无效。报错信息如下:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet sent successfull原创 2021-08-18 18:37:45 · 1819 阅读 · 0 评论 -
解决springboot+shiro+Google验证码,在nginx部署环境下无法获取到session中的验证码的问题
【现象】前后端分离项目,在nginx环境下部署。依靠shiro中session存储验证码,前台发送请求校验验证码时,发现拿到的不是同一个session,因此取验证码时一直为null。【解决:更改nginx配置】proxy_cookie_path 前面是项目路径,后面是配置文件代理的路径例如后台配置中是:server.context-path=/api 且nginx的路径为 location /pathname{......}则,需要配置proxy_cookie_path形如下:loca.原创 2021-08-13 11:26:08 · 771 阅读 · 0 评论 -
数据库时区问题
数据库存在时区设置不准确,导致实际时间与业务时间不相符的情况。处理办法:1.修改数据库的时区:设置为东八区,sql执行:set time_zone = '+08:00';2。JDBC连接指定时区:jdbc:mysql://localhost:3306/XXXX?serverTimezone=Asia/Shanghai...原创 2021-07-28 20:20:35 · 617 阅读 · 0 评论 -
安装虚拟机,宿主机未找到vmnet8等网卡信息
多半由于虚拟机非首次安装,或者版本进行过更新,导致原来的注册表信息没有删除干净。网上下载CClearner先扫描,再修复全部,删除没用的注册表。再打开VMware原创 2021-07-18 00:05:35 · 412 阅读 · 0 评论 -
springboot环境使用redis乱码或设值异常的解决
问题描述:key乱码或按照正常方式set后,无value值显示等异常情况。解决:保证redis连接正常后,需要配置redis配置类。原文如下:import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnect.原创 2021-04-29 09:42:41 · 199 阅读 · 0 评论 -
基于springboot环境的自定义注解
一、说明基于springboot,实现自定义注解。可做日志记录,方法增强等等。二、依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>注意:如果使用的不是spring-boot-start原创 2021-04-22 11:31:50 · 144 阅读 · 0 评论 -
解决idea或浏览器访问github超时问题
本方法对我自己的情况有效,不保证对所有类似情况有效,仅供参考、测试。流程如下:以管理员身份打开记事本记事本左上角菜单中,选择“打开”在“C:\Windows\System32\drivers\etc”路径下查找“hosts”文件,注意要选择“所有文件(*)”在hosts文件中,新增如下内容:199.232.69.194 github.global.ssl.fastly.net140.82.113.3 github.com140.82.112.4 www.github.com原创 2021-04-08 13:28:02 · 551 阅读 · 0 评论 -
Out of range value for column ‘XX‘ at row XX 异常
在mysql 添加数据或更新字段数据时,报错:“Out of range value for column 'XX' at row XX ”目前想到有两种可能:1、字段长度不够 ,这种情况添加字段长度就可以了2、类型不对,因为在mysql中不同类型的数据类型,存储的字节位数也是不一样的,这样的话就需要更改字段数据类型,其实跟比如使用Mybatis 操作mysql,传参的数据类型也有关系,表中定义的字段为group_id 为int,但是传参为Long 就会出现这个问题,为了解决这个问题,可以修改字段类原创 2021-03-09 15:55:02 · 1889 阅读 · 0 评论 -
关于java读取resource下文件,程序报错不存在问题的解决
先排除路径错误等低级错误。一般读取某文件,比如在resource目录下的ehcache文件夹中有ehcache-shiro.xml文件,使用以下方式读取ResourceUtils.getInputStreamForPath(“classpath:ehcache/ehcache-shiro.xml”);代码中要思考,classpath意义。简明之意是,告诉程序到编译后的路径下去读取文件,这一点通过看源码可以理解。如果出现了原本有文件,但仍报错不存在,可以从编译后的路径中,查看resource原创 2021-02-16 22:54:02 · 3088 阅读 · 0 评论 -
java报错找不到符号
报错找不到符号,可能原因很多,也许是jdk版本原因,也许是配置原因,等等先查看下以下配置框选中的,应该为勾选状态。如果不是这个原因,再去查找其他可能。原创 2021-02-16 19:56:17 · 1744 阅读 · 0 评论 -
使用bat脚本启动指定目录下的jar包
为了将一个java程序封装成一个简单易用的小工具,使用bat脚本启动jar包。方便理解,贴图展示层级关系:在txt文档中,键入:@echo offjava -jar %~dp0core\demo.jar注意:1、其中“core”是文件夹的名称,最终目的是以绝对路径的方式指定到jar包。2、%~dp0 即获取当前bat所在的文件夹绝对路径。将txt保存后,改成bat后缀即可运行jar包。为了方便调试,可以将脚本修改成如下格式:@echo offecho %~dp0java -ja原创 2021-02-02 10:56:05 · 4088 阅读 · 1 评论 -
关于java -jar 的方式启动jar包,报错内存不足问题(java heap space)
工作涉及需要将jar包封装成小工具,用于解析数据文件并生成数据文件。在工作电脑或者idea编译器中,运行正常。但是使用个别电脑,会报错内存不足问题(java heap space)。除了电脑配置的原因外,可以手动指定分配内存空间,解决问题。启动时,使用语句:java -jar-Xmn128m -Xms512m -Xmx512m Demo.jar问题解决。...原创 2021-02-02 10:40:36 · 2684 阅读 · 1 评论 -
java打包后提示没有主清单属性
使用的是idea。解决:打包时,指定MANIFEST.MF文件不要指定到main/java下,指定到src下即可。原创 2021-01-30 21:11:55 · 479 阅读 · 0 评论 -
java导出数据到excel后,数据单元格由于自检,单元格左上角有绿色标志标识问题
java导出到excel后,数据单元格总有报错,如下图所示:解决方式:从技术层面,明确指定单元格格式,或如果使用的是easypoi,可以在模板中的属性前,加上“n:”,以转成数字格式。从excel层面,可以在“文件-选项-公式”中,取消勾选“允许后台错误检查”,如下截图:...原创 2021-01-30 20:46:49 · 1570 阅读 · 0 评论 -
使用easypoi读取模板数据并输出后,原模板中的公式未自动执行计算的问题
使用easypoi读取模板输出数据,模板中的公式不计算,必须手动双击单元格,或者重新粘贴复制才能计算。网上很多方式,比如:设置公式的自动计算等,经测试,对我操作的此项文件无效。解决方法:在导出(即在 workbook.write(out); )之前,设置“强迫公式自动计算”,即:workbook.setForceFormulaRecalculation(true);经测试,对我操作的文件,有效。...原创 2021-01-30 20:32:29 · 1537 阅读 · 3 评论 -
java处理科学计数法转成普通数字时,精度失真问题
在读取excel文件时,文件中是小数,使用java读取后变成了科学计数法,如果需要再次转成小数,可以使用BigDecimal类。特别注意: BigDecimal(double)的方式,将double转成BigDecimal,会有精度损失。错误实例: BigDecimal b = newBigDecimal(0.1d); 实际存储结果为:0.10000000149.解决方式: 使用BigDecimal(String)构造函数处理,先将dou...原创 2021-01-22 11:07:03 · 1806 阅读 · 1 评论 -
以生产者消费者的简单示例演示锁的等待与唤醒
import java.util.concurrent.CopyOnWriteArraySet;/** * @Description: 以生产者消费者的简单示例演示锁的等待与唤醒 * @Date 2020年12月1日00:03:57 * @Version V1.0 */public class Demo1_1 { //创建数据集合 private static volatile CopyOnWriteArraySet<String> set = new Copy.原创 2020-12-01 00:05:33 · 145 阅读 · 0 评论 -
关于iframe嵌入的页面无法正常使用的可能原因其一------跨域问题
背景:1、使用的谷歌浏览器。2、独立的系统,单独输入连接访问没有问题。3、通过iframe嵌入后新系统后,某些功能不能正常使用,多见于涉及到session中的操作时。原因:谷歌浏览器在83版本以上,会设计到跨域问题。见请求头中的代理,如图:和版本相关。最简单的验证方式,如果使用低版本或者360浏览器可以正常运行,即证。版本对应关系查看,如图:点击打开查看谷歌版本:...原创 2020-11-19 17:24:15 · 7221 阅读 · 0 评论 -
关于thymeleaf的报错:Caused by: org.attoparser.ParseException: Could not parse as expression: ......
类似于这样的错误:Caused by: org.attoparser.ParseException: Could not parse as expression: "{field: ‘id’, title: ‘ID’, fixed: ‘left’, unresize: true, sort: true}, {field: ‘name’, title: ‘姓名’, edit: ‘text’, sort: true}, {field: ‘phone’, title: ‘电话’, edit: ‘text原创 2020-10-18 22:22:44 · 5009 阅读 · 4 评论 -
关于“==”判断字符串。字符串判断,不一定都用equals
Calendar源码中,有对字符串做“==”判断。原因是“th”、“JP”(字面量)等都被放到了字符串常量池中。“==”获取地址时,会先从常量池中找,如果没有再从堆中找。如果不是new 出来的字符串(new 出后会在堆中重新开辟空间),一般都会相等。特殊情况注意,分情况使用字符串的intern()方法。...原创 2020-08-26 11:15:55 · 671 阅读 · 0 评论 -
1.8以后线程安全的日期获取LocalDateTime,尽量少用Date。
https://blog.csdn.net/weixin_38405253/article/details/100765007原创 2020-08-26 10:00:40 · 272 阅读 · 0 评论 -
CommandLineRunner、ApplicationRunner 接口
spring接口,实现后可以实现初始化等操作。传送原创 2020-06-17 10:33:26 · 72 阅读 · 0 评论 -
if和switch区别
应用层面: IF语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断; 而 SWITCH只能对基本类型进行数值比较。两者的可比性就仅限在两个基本类型比较的范围内。寄存器读取: eg_if:如果对(int a) a 来判断: if(a==1){ //dosomething }else ...原创 2020-04-22 14:23:39 · 2382 阅读 · 0 评论 -
记idea一次大宕(项目部署找不到tomcat、找不到springboot)
很久之前,idea未知原因,突然开始,项目无法加载,服务无法启动。闪退。重启电脑后,idea可以运行。但是发现很多插件丢失。包括部署项目的tomcat都找不到图标。手动下载tomcat插件后正常。又过了很久,本地启动springboot项目。发现springboot项目的jrebel热部署失效。经查,也是由于那次闪退,丢失了springboot的插件。在配置启动类中根本找不...原创 2020-04-20 17:11:49 · 466 阅读 · 0 评论 -
aop的环绕通知中,获取执行的方法、所属类名、所属包名等数据的方式
demo见springboot实现aop环绕通知以环绕通知为例:例:public Object roundAsp(ProceedingJoinPoint pj){......}获取执行的方法名:MethodSignature signature = (MethodSignature) pj.getSignature();String name = signature.ge...原创 2020-03-10 18:06:39 · 5852 阅读 · 0 评论 -
springboot实现aop环绕通知
1、依赖,引入此依赖后,springboot会自动开启自动代理,相当于@EnableAspectJAutoProxy,故不需要再手动添加这个注解。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri...原创 2020-03-10 17:18:28 · 4997 阅读 · 0 评论 -
spring纯注解方式实现aop环绕通知
1、在注解+配置实现aop环绕通知基础上,直接删除配置文件。2、新建配置类,在类上增加注释以代理配置文件中的两个配置:包扫描和自动开启代理3、测试时,使用AnnotationConfigApplicationContext类加载配置类。...原创 2020-03-10 15:30:44 · 542 阅读 · 0 评论 -
spring通过配置+注解方式实现AOP环绕通知(全自动,即获取执行对象,直接获取被代理对象)(1、aop无法获取对象,类型转化异常错误记录。2、spring注解形式实现aop不要使用四大通知的解释)
spring通过注解的方式实现四大通知,只能用前置和后置,如果使用最终通知,该最终通知会在后置或者异常通知之前执行,spring现存问题,所以只演示spring通过注解方式全自动实现环绕通知。1、引入依赖:<!-- Spring --><dependency> <groupId>org.springframework</groupId&...原创 2020-03-10 13:16:53 · 419 阅读 · 0 评论 -
最简洁安全的String转int(guava依赖)
结合jdk8String str= "1234";int strToint= Integer.parseInt(str);可能会报出数字转换异常,需要加异常捕获进行处理int strToint;try { strToint= Integer.parseInt(str);}catch (NumberFormatException e){ str...原创 2020-03-10 12:02:46 · 1217 阅读 · 0 评论 -
在spring单元测试中引入配置文件
1、pom文件引入依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <...原创 2020-03-08 12:11:38 · 692 阅读 · 0 评论