![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
DC_Zhang
这个作者很懒,什么都没留下…
展开
-
java项目中的静态文件读取
静态文件读取原创 2022-09-20 20:29:56 · 4176 阅读 · 0 评论 -
批量下载文件
java批量下载文件原创 2022-07-27 09:51:12 · 359 阅读 · 0 评论 -
分布式 session 的4个解决方案
session共享原创 2022-07-25 18:34:38 · 315 阅读 · 0 评论 -
RequestContextHolder
RequestContextHolder简介原创 2022-07-22 10:38:29 · 259 阅读 · 0 评论 -
自定义注解处理器和lombok
如何实现的使用编译时注解的方式,在编译的时候对代码进行生成相应的方法如何使用lombok是一个开源项目,直接在pom中进行引用,然后在idea中进行插件安装功能通过添加注解的方式为我们自动生成一些方法,使得我们的代码更加简单易懂,在查看编译以后的文件会发现已经为我们生成了相应的方法@Data public class TestLombok { private String name; private Integer age; public static vo原创 2022-05-15 18:27:14 · 484 阅读 · 0 评论 -
事务不生效的原因
事务不生效的原因异常被捕获 没有进行抛出抛出非运行时异常(可以指定回滚类型为exception)注解在非public方法上面方法内部非事务调用事务方法(自己注入自己,在非事务方法当中通过注入的自己的对象调用事务方法)开启一个新的线程数据库本身不支持事务的传播属性设置为不支持事务(当前事务被挂起)...原创 2022-05-11 17:36:23 · 794 阅读 · 0 评论 -
elastic-job
框架图前端nginx负载均衡网关业务层能力层技术选型dubbo:zk+dubbo+springbootspring cloud:eureka + config + zuul + http restful + hystrix原创 2022-05-11 08:00:09 · 84 阅读 · 0 评论 -
mybatis相关问题
mybatis文章目录mybatismybatis分页问题#和$符号的区别mybatis分页问题采用全量查询进行list分页 // 方式一 List<String> data = new ArrayList<>(); List<List<String>> partition = Lists.partition(data, pageSize); List<String> list = parti原创 2022-05-10 20:45:17 · 337 阅读 · 0 评论 -
Event事件简单实现
Event事件简单实现原创 2022-05-08 15:21:13 · 195 阅读 · 0 评论 -
zookeeper分布式协调
业务代码将所有的配置数据配置到zk,其余服务对zk进行watch和getzk进行创建连接的时候可以进行目录创建, 创建的目录的配置是进行隔离的。创建zk的时候可以使用countDownLatch.wait进行连接等待,在监听器中进行监听,当连接成功的时候线程继续进行。zk读取可以进行同步和异步,异步的有一个回调函数,在回掉函数中进行调用读取数据代码进行异步调用的时候会反复的回调,可以创建工具类xxxCallBack对watch,statCallback,datacallback进行继承,同时实现原创 2022-04-21 06:37:26 · 177 阅读 · 0 评论 -
序列化date问题
在给前端返回date类型的值的时候进行格式化方式一:单属性配置@JsonSerialize(using = JsonDateSerializer.class)private Date createDate;方式二:全局配置原创 2022-04-11 18:50:16 · 598 阅读 · 0 评论 -
多线程高并发1
线程一个程序里面的不同的执行路径。Thread的run和start的区别run只是单纯的掉用重写的run方法,但是start方法会以多线程的方式进行启动,即会单独启动一个线程进行调用run方法创建线程继承Thread实现Runnable接口(调用的时候需要将new对象传到一个Thread类的对象中)线程池Executor.newCachedThread简单方法sleepyield返回到就绪状态,短暂让出join。t1调用t2的join方法,等待t2运行结束锁升级:偏向锁-原创 2022-04-11 08:45:55 · 78 阅读 · 0 评论 -
StampedLock
StampedLockStampedLock使用必须遵循的模式private final StampedLock sl = new StampedLock();long stamp = sl.tryOptimisticRead(); // 非阻塞获取版本信息 使用乐观锁copyVaraibale2ThreadMemory(); // 拷贝变量到线程本地堆栈if(!lock.validate(stamp)){ // 校验 long stamp原创 2022-02-01 13:24:54 · 276 阅读 · 0 评论 -
java常见问题
java常见问题ConcurrentHashMapConcurrentHashMap的线程安全是保证单次操作的原子性,仅仅使用ConcurrentHashMap不能保证线程安全,如果在多线程的情况下进行操作依旧要对map进行加锁public String right() throws InterruptedException { ConcurrentHashMap<String, Long> concurrentHashMap = getData(ITEM_COUNT - 10原创 2022-01-23 08:39:53 · 450 阅读 · 0 评论 -
java深克隆
java深克隆public class People implements Serializable, Cloneable { // 属性省略 @Override protected Object clone() { return deepClone(); } public Object deepClone() { try { ByteArrayOutputStream bos = new ByteArrayO原创 2021-12-13 10:35:23 · 127 阅读 · 0 评论 -
使用线程池进行定时任务
#使用线程池进行定时任务 public static void main(String[] args) { List<String> list = new ArrayList<>(); ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1); AtomicInteger j = new AtomicIntege原创 2021-12-10 10:25:39 · 1211 阅读 · 0 评论 -
httpPost请求
#java代码进行http请求(org.springframework.http) public static void main(String[] args) { // 请求路径 String url = ""; RestTemplate restTemplate = new RestTemplate(); // 消息头 HttpHeaders headers = new HttpHeaders();原创 2021-12-10 10:17:31 · 601 阅读 · 0 评论 -
Stopwatch用法
获取系统时间计算System.currentTimeMillis()Stopwatch 对程序部分代码进行计时(ms级别),适用于同步单线程代码块。StopWatch实例一次只能开启一个task,不能同时start多个task,并且在该task未stop之前不能start一个新的task,必须在该task stop之后才能开启新的task,若要一次开启多个,需要new不同的StopWatch实例// 只输出运行多少秒Stopwatch stopwatch = Stopwatch.creat.原创 2021-09-16 17:23:35 · 21508 阅读 · 0 评论 -
ForkJoinPool 使用
ForkJoinPool 使用public class CalculateTaskTest { // 具体调用 public List<Test1> parallelGetTest1S(List<Test2> params) throws ExecutionException, InterruptedException { ForkJoinPool pool = new ForkJoinPool(10); ForkJoinTask&原创 2021-09-16 15:27:04 · 336 阅读 · 0 评论 -
pdfbox简单使用
pdfbox 简单使用在制定的本地路径中创建pdf文件并且添加空页删除pdf页面删除指定区间的页面判断是否下标越界在制定的本地路径中创建pdf文件并且添加空页 public static boolean createPDDocument(String pdfPath, String fileText) { try { // 新建文档 PDDocument pdDocument = new PDDocument();原创 2021-07-20 17:27:28 · 127 阅读 · 0 评论 -
Serializable
Serializable一般情况下,我们在定义实体类时会继承Serializable接口。并且会定义serialversionUID(如果我们没有自己声明一个serialVersionUID变量,接口会默认生成一个serialVersionUID)package com.gosuncn.entity;import java.io.Serializable;public class User implements Serializable { private static final long原创 2021-02-19 14:28:21 · 2047 阅读 · 2 评论 -
java web后端Date数据类型以Json格式返回时格式问题
遇到问题:java web后端Date数据类型以Json格式返回时格式问题 在从数据库中查出数据存入Date类型中 返回到前端格式如下,自动加时区 "createTime": "2021-02-27T00:00:00.000+00:00" 但是前端需要的json数据格式为"createTime": "2021-01-28 03:31:02" 查找原因以为数据库查出来的timestamp格式回自动加时区,结果时因为转json的时候出现问题解决办法:在定义实体类的时候在属性上面使用@JsonFor原创 2021-01-28 15:46:07 · 383 阅读 · 0 评论 -
sftp下载文件过程中报错:“java.io.IOException: Pipe closed” 解决:inputStream复制
背景:实现文件SFTP上传和下载功能,公司一开始实现是直接上传到服务器,生产环境权限不足不能进行新建文件,改进为sftp上传下载,在下载的过程中出现以下报错sftp下载文件过程中报错:“java.io.IOException: Pipe closed”原因:关闭SFTP连接的时候InputStream流也随着关闭改造:我从下载SFTP流里面读取字节返回,再把读取的字节放到流里面上传外部SFTP,这样问题就解决了。 public class StreamOperateUtil { pu原创 2021-01-20 16:12:40 · 10128 阅读 · 5 评论