JAVA
记录一些JAVA笔记,以及遇到的问题解决方法
csdn_Ty
这个作者很懒,什么都没留下…
展开
-
一个JAVA的深拷贝工具类,支持递归
【代码】一个JAVA的深拷贝工具类,支持递归。原创 2023-07-26 17:50:35 · 390 阅读 · 0 评论 -
SpirngCache、Redis指定过期时间、到期自动刷新
缓存作为提升应用性能的重要手段,其管理策略的合理性直接影响到应用的响应速度和数据一致性。在Spring框架中,Spring Cache提供了一种声明式缓存的解决方案,而Redis作为高性能的缓存数据库,被广泛应用于缓存实现。本文将介绍一种通过自定义注解实现Spring Cache与Redis缓存过期时间管理及自动刷新的策略。原创 2022-12-18 19:30:19 · 3307 阅读 · 2 评论 -
SpringCache、Redis实现指定过期时间
我们都知道springCache定义了缓存规范,其中redis的解决方案并不支持每个缓存key独自设置过期时间,本方案通过定义cacheName为特定格式,从而设置缓存过期时间。支持设置过期时间单位(默认秒)1、重写RedisCacheManager的createRedisCache方法。2、把TaRedisCacheManager交给spring管理。3、使用,为testCache设置过期时间为10小时。原创 2022-12-17 11:58:20 · 2829 阅读 · 0 评论 -
Java Web 三大组件之一 Filter
什么是过滤器Filter 过滤器它是 JavaWeb 的三大组件之一。三大组件分别是:Servlet 程序、Listener 监听器、Filter 过滤器Filter 过滤器它是 JavaEE 的规范。也就是接口Filter 过滤器它的作用是:拦截请求,过滤响应。转载 2021-12-04 15:15:53 · 105 阅读 · 0 评论 -
一个基于ThreadLocal的日志工具类
在我们开发或者系统维护过程中,往往需要日志跟踪。每个方法中单独记录参数和处理结果,会让我们的日志看起来非常乱。比如: public static void main(String[] args) { process1(); process2(); } private static void process1() { // 业务代码 System.out.println("process1 success");原创 2021-11-03 10:11:38 · 413 阅读 · 0 评论 -
Swagger配置扫描路径和过滤URL
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.ParameterBuilder;import springfox.documentat..原创 2021-08-11 16:59:49 · 2111 阅读 · 0 评论 -
七种方案!探讨Redis分布式锁的正确使用姿势!
https://mp.weixin.qq.com/s/4fsD1yHmR0BMx9Mpv89ouw转载 2021-07-12 09:34:54 · 153 阅读 · 0 评论 -
OptionalStr工具类
java.util工具包下有一个Optional工具类,对于我们做非空校验有很大的帮助。但是在实际项目使用中,很多参数都是String类型的。不单单需要判断非null,还要过滤空串,所以借鉴写了一个OptionalStr。上代码:package com.yinhai.training.util;import cn.hutool.core.util.CharUtil;import java.util.Objects;import java.util.function.Consumer;im.原创 2021-06-29 15:09:31 · 420 阅读 · 0 评论 -
Hibernate事务提交缓慢
踩了两天的坑,在这里记录一下。spring + springmvc + hibernate4 + oracle,系统运行一年多,数据量最大的几张表大概有三千万左右,查询统计shu'd原创 2021-06-14 00:11:14 · 770 阅读 · 3 评论 -
base64码通过http传输 +号变 空格 问题解决
通过七牛云base64上传图片,通过官方示例上传成功后,根据示例改了一个controller。通过前端往后端传base64码形式进行测试。死活不通过,七牛报400。仔细排查后发现,示例转换的base64码与前端传来的base64码稍有区别,前端通过post传入的base64码将 “+” 号改成了 空格 。网上解决方案前台处理 :java方法:URLEncoder.encode(str,"UTF-8");js 方法encodeURIComponent(str);后台处理:URLDe..转载 2021-01-19 20:00:22 · 2997 阅读 · 0 评论 -
关于HashMap初始化容量,设置多少合适。
在实际开发中,我们经常用到HashMap。也知道创建一个HashMap对象如果不指定初始化容量initialCapacity的话,HashMap的默认容量是16。这样是大大方便了我们开发,但是这却不是最优的选择。《阿里巴巴开发手册》中是这么建议的:HashMap初始化容量设置多少合适那么,既然建议我们集合初始化的时候,要指定初始值大小,那么我们创建HashMap的时候,到底指定多少合适呢?有些人会自然想到,我准备塞多少个元素我就设置成多少呗。比如我准备塞7个元素,那就new HashMap(原创 2020-11-17 14:41:15 · 6105 阅读 · 2 评论 -
Oracle获取连接超级慢的问题
正式环境运营一点时间后。出现Oracle连接数获取非常慢的情况。结果就是连接池获取不到连接,卡死在这里,客户端请求超时。试过很多方法之后,发现是DNS的问题。由于我们服务器是不通外网,实施人员搭建的时候 /etc/resolv.conf 下加了nameserver 8.8.8.8 。因为不通外网所以这里就有问题了,直截了当注释掉。再次测试,连接数嗖的一下就上去了。...原创 2020-11-10 15:41:51 · 944 阅读 · 1 评论 -
tomcat配置JVM
1.linux 下调整tomcat的内存设置修改bin目录下catalina.sh文件在cygwin=false之上添加以下语句JAVA_OPTS=-server -Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256M -XX:MaxPermSize=256M其中-xms为jvm初始化堆的大小,-xmx为jvm堆的最大值2. window 下调整tomcat的内存设置修改bin目录下 catalina.bat文件@echo原创 2020-11-09 17:58:49 · 364 阅读 · 0 评论 -
tomcat配置https
1. 生成证书 keytool -genkey -v -alias tomcat -keyalg RSA -keystore d:\local.keystore -validity 36500生成别名为 tomcat 名称为local.keystore的证书,有效期100年。然后密码什么的根据自己需求填写。2.配置tomcat打开${TOMCAT_HOME}\conf\server.xml,释放以下注释内 <!-- <Connector port="81...原创 2020-10-21 11:03:57 · 138 阅读 · 0 评论 -
记录写的一个异常工具类LogUtils
import cn.com.itsea.util.TimeOfSystem;import cn.hutool.core.exceptions.ExceptionUtil;import lombok.extern.slf4j.Slf4j;import java.io.PrintWriter;import java.io.StringWriter;import java.util.List;import java.util.TimeZone;@Slf4jpublic class LogUt.原创 2020-11-09 17:24:57 · 331 阅读 · 0 评论 -
报错,拒绝连接 ORA-01017: invalid username/password;logon denied
正式环境使用DBA给我们建的oracle用户。主要项目和工具都可以连上数据库,但是偏偏写的同步程序被拒绝连接。SQL>sqlplus / as sysdba1) 修改用户密码SQL>alter user 用户名 identified by 密码2)用户被锁定,解锁ALTER USER username ACCOUNT UNLOCK;再次尝试,成功!...原创 2020-09-27 09:11:21 · 500 阅读 · 0 评论 -
spring + hibernate + 双数据源 动态(或手动)切换
1. 定时检查数据库连接是否可用(手动切换) 昨天生产库一台装有数据库的服务器关机了。虽然另一台服务器上还有服务,但是共用的一个数据库。所以。。。主服务器挂了另一台也没啥用。 所有为避免再次出现这种情况,决定配置双数据库。我的需求是主数据库服务挂掉之后,副数据库能随时顶上。废话不多说,直接上代码1. applicationContext-hibernate.xml<?xml version="1.0" encoding="UTF-8"?><beans xm原创 2020-09-10 17:32:31 · 724 阅读 · 0 评论 -
spring中的循环依赖解决方案
什么是循环依赖?一般场景是一个Bean A依赖Bean B,而Bean B也依赖Bean A.Bean A → Bean B → Bean A当然我们也可以添加更多的依赖层次,比如:Bean A → Bean B → Bean C → Bean D → Bean E → Bean ASpring中的循环依赖当Spring上下文在加载所有的bean时,他会尝试按照他们他们关联关系的顺序进行创建。比如,如果不存在循环依赖时,例如:Bean A → Bean B → Bean CSpring.转载 2020-06-12 09:27:13 · 439 阅读 · 0 评论 -
Oracle查看锁表并解锁
查看锁SELECT object_name, machine, s.sid, s.serial#FROM gv$locked_object l, dba_objects o, gv$session sWHERE l.object_id = o.object_idAND l.session_id = s.sid;释放锁alter system kill session '1158,32200';原创 2020-05-13 11:14:52 · 172 阅读 · 0 评论 -
关于hibernate注解@OneToOne@ManyToOne@OneToMany关联另一表时数据不存在抛出异常
加上 @NotFound(action=NotFoundAction.IGNORE) 注解原创 2020-01-10 17:45:13 · 933 阅读 · 2 评论 -
JAVA静态变量绑定yml文件属性
如果我们需要注入yml配置文件中的变量,只需要在属性上加上@Value("spring.redis.host")即可。但是如果我们需要在静态方法中使用这个变量,那么这个属性就需要是静态属性了。这时候@Value("${spring.redis.host}")的值为null。这时需要在类上加上注解@Component再加上一个set方法就行了,注意:set方法是非静态的。...原创 2019-11-15 18:20:49 · 976 阅读 · 0 评论 -
说说hashCode()和equals()的相关问题
本章的内容主要想解决一下几个问题:equals() 和 == 的作用是什么?equals() 和 == 的区别是什么?hashCode() 的作用是什么?hashCode() 和 equals() 之间有什么联系?1. equals() 和 == 的作用== 是用来判断两个对象是否为同一个对象,通过判断两个对象的地址来区分它们是否相等。equals()是用来判断两个对象是...原创 2019-08-08 17:17:17 · 298 阅读 · 0 评论 -
JAVA的mapToBean及beanToMap工具类
import org.apache.commons.lang.WordUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.la...原创 2019-08-01 14:42:26 · 6469 阅读 · 0 评论 -
Java中关键字synchronized用法
synchronized是Java中的关键字,是一种同步锁。它在应用中修饰的对象有一下几种:修饰一个代码块,被修饰的代码块称为同步语句块,作用范围是大括号包裹的代码,作用的对象是调用这个代码块的对象。 修饰一个方法,被修饰的方法称为同步方法,作用范围是整个方法,作用的对象是是调用这个方法的对象; 修饰一个静态方法,作用范围是整个静态方法,作用的对象是这个类的所有对象; 修改一个类,其作用...原创 2019-07-20 15:32:44 · 165 阅读 · 0 评论