- 博客(68)
- 资源 (7)
- 收藏
- 关注

原创 分布式事务相关概念及常见解决方案
文章目录什么是分布式?为什么要考虑分布式事务分布式事务的解决方案1、2PC(Two-phase commit protocol)2、3PC3、TCC4、本地消息表5、MQ消息事务6、最大努力通知7、seata总结什么是分布式?说一说我个人的理解,分布式是一种概念,化繁为简、化整为零,把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分。这边我们主要考虑计算机软件的分布式,也就是微服务概念,在我看来微服务就是把一个功能复杂、庞大的系统按照一定合理的规则,将功能模块进行拆分,分成很多小的系统,然后需要
2021-07-05 09:48:59
144

原创 基于Html5 的canvas容器实现定制印章(圆形、椭圆、方形)
出于业务需求,最近需要开发个基于web页面的印章制作功能。经过各大论坛、网站、github的一番学习后,我发现圆形、椭圆的例子有很多,但是方形印章的源码却很少,甚至我都没找到。于是只能自己造轮子了,我主要是用js实现的,很少写前端,也不熟js,只能需要用啥上网找语法,先上个v1.0吧,后期完善好再更新。由于全程基于Notepad++写的,所以格式很乱,有没有朋友推荐款idea。主要优势:1. 界面化,可以直观定制,可直接下载原图2. html文件,无需插件、idea,直接浏览器运行3. 实现圆形印
2020-06-10 17:24:55
2497
2

原创 java访问第三方接口的HTTP工具类 获取Token、访问Post、GET、PUT请求等
util.javapublic class HttpClientUtils { private static final String CHARSET = "utf-8"; private static final String CONTENT_TYPE_TEXT_JSON = "text/json"; /** * Header参数 */ private static final String Authorization = "Authorizatio
2020-05-11 13:32:30
4841

原创 ResultUtil 返回结果统一格式处理
作为一个好的接口,肯定需要一个美观的统一返回格式。那么,这是怎么做到的呢?创建Result工具类,编写接口调用成功失败返回方法,通常code、message、data这三部分组成为了更规范、美观,让自己的项目更有逼格,code通常用枚举代替直接赋值。当然了,从技术层面这也是有必要性的,通常我们项目编译成class文件的话是看不到直接赋值的,如果定义成枚举,那别人可以通过查看枚举来看到具体内...
2020-04-21 09:30:39
4037

原创 Springboot利用Security+JWT实现token权限认证+用户角色认证
首先创建springboot项目,不多说。Step 1 引入依赖,如下。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>...
2020-04-19 15:16:15
1904
1

原创 mybatis逆向工程生成service代码的实现
关于mybatis逆向工程的介绍我就不重复赘述了,相关资料网上有很多。看了网上很多逆向工程的文章,但是很多都只是生成简单的mvc框架,没有具体service的代码生成。故在我学习整理诸多前人的经验后,增加了具体的增删改查业务实现代码。Generator.javaimport java.io.File;import java.io.IOException;import java.util....
2020-04-19 14:35:44
1906
4
原创 人工智能开发面经AI、大数据、算法
面试中需结合项目经验阐述技术细节,例如在回答“迁移学习”时,可举例“使用ResNet预训练模型进行医学图像分类”。同时,准备Prompt工程、AI伦理等软技能问题,展现综合能力。
2025-03-04 15:06:40
823
原创 某大厂终面面经,总包80w,希望小伙伴们都能在新的一年里找到满意的工作。
分代回收基于"弱分代假说"(大多数对象生命周期短)和"强分代假说"(存活时间长的对象很少死亡)。通过Minor GC(新生代回收)和Major GC/Full GC(老年代回收)提升效率。:终面侧重系统设计、架构能力和算法深度,需结合具体业务场景(如电商、直播)思考解决方案。:类加载请求先由父加载器处理,若无法加载再由子加载器处理。:如何用Java实现一个O(1)时间复杂度的LRU缓存?:给定两棵二叉树A和B,判断B是否是A的子树。:如何实现一个高可用的分布式锁?:RDB和AOF的区别?
2025-03-04 15:03:53
344
原创 grafana 导出iframe链接 嵌入业务系统
grafana 是一个很好的监控前端系统,支持很多数据源,这个具体我就不展开介绍了,有兴趣的同学可以自行学习。今天我主要来分享一下,如何将grafana的单个页面嵌入到我们自己的管理系统或者业务系统中。1、设置grafana 允许 iframe访问、允许匿名访问(不登录)我是docker安装的,所以进入容器 修改 /usr/share/grafana/conf/defaults.ini 文件2、导出grafana iframe链接3、将链接直接复制到我们需要引入的html中即可...
2022-05-31 14:34:51
1629
原创 记一个 Junit 失效 找不到start类的大坑
记一个 Junit 失效 找不到start类的大坑背景:idea 2021.3 + jdk 11+springboot 2.4.5 + junit 2.4.5问题:运行测试类报错找不到或无法加载主类 com.intellij.rt.junit.JUnitStarter试过网上很多方法1、排查依赖冲突2、去掉 argLine配置等等,都不行。这边经过我半天摸索之后,我的解决办法是修改运行环境中的如下配置...
2022-04-20 14:19:07
2484
4
原创 适配国产数据库 GBase(南大通用mysql版)
这篇帖子主要是记一下踩过的坑。文章目录1. 数据库安装2. sql迁移(mysql->gbase)2.1 注意编码格式统一3. 适配pagehelper、mybatis-plus3.1 适配pagehelper4. 语法坑5. 其他坑1. 数据库安装一个服务端只支持一个实例,用法类似mysql,如需多个实例,可按装多个客户端。2. sql迁移(mysql->gbase)2.1 注意编码格式统一字段上 SET utf8 COLLATE utf8_general_ci表上C
2022-03-09 14:58:32
4476
原创 项目管理常用图(甘特图、WBS、燃尽图)了解
作为一个项目经理,不可避免的要用到图表来规划项目,我个人认为比较重要的有三类。甘特图作为项目管理常用图表之一,甘特图不仅能够让管理者实时有效掌握项目进度和资源分配,同时能够加强过程的可视化管理、人员实时沟通,把责任和任务落到实处,让项目有序进行,实现企业管理方法和流程的优化,从而提升企业效益。甘特图的横轴表示时间,纵轴表示项目,线条表示期间计划和实际完成情况,直观表明计划何时进行,进展与要求的对比,便于管理者弄清项目的剩余人物,评估工作进度。甘特图常用于项目初期制定项目timeline,用以跟进项目
2022-03-01 18:18:06
21065
原创 nginx 部署多个vue前端项目
思想:1、先反向代理 ,将多个前端项目的静态资源文件放不同位置,通过反向代理出去,可以做到用户同一个域名端口,不同路径访问不同项目,2、再正向代理,前端访问不同后端,配置正向代理,转发到相应后端服务。#######前端反向代理出去 location / { root /usr/share/nginx/html; index index.html index.html; try_files $uri $uri/ /index.html;
2022-02-24 18:12:09
2620
原创 pageHelper 不支持多线程
pageHelper 分页不支持多线程,因为用的是ThreadLocal保存分页信息的,所以需要在多线程里面最好在mapper层设置分页
2022-01-15 10:04:01
779
原创 并行流正确使用方式 顺序不出错,不报空指针
一开始用并行流 出现了顺序乱了,偶尔空指针的问题,这类问题网上一搜一大堆,原理也有解释我就不废话了,直接说结论。大家都用错了,正确使用的话是不会有问题的。List<XXRequest> resultList = xxList.parallelStream().collect(ArrayList::new,(arrayList,i)->{ XXRequest xxRequest = new XXRequest(); BeanUtils.co
2022-01-14 10:15:52
522
原创 设计模式整理复习 (一)
1. 单例模式2.单例模式定义在当前进程中,通过单例模式创建的类有且只有一个实例。使用场景常用却耗时多或者消耗空间多的工具类,如线程池、数据库连接池、httpclient、restTemplate连接等等。保存的共享数据,如redis、session等,其实也是工具类。计数器特点一个JVM中,用单例模式创建出的对象,只有一个实例。构造器是私有的,外部类无法创建实例。没有public 的 set()方法,外部类无法调用set()创建实例。有个public 的 get()方法
2021-11-26 17:10:43
209
原创 美团面试 65min (同事)
自我介绍。介绍熟悉的项目,主要流程是什么,用到什么技术,学到了什么。项目中遇到了哪些难点,怎么解决的。线上排查生产问题,怎么排查的。(说了arthas,人说小公司可能没有要求,大公司不会让用这种工具的。也没有问原理)volatile的原理,项目中有没有使用过,它能做什么?怎么做到的。线上服务用的什么垃圾收集器?G1,为什么要用G1?(忘了说最重要的一点,不会产生碎片问题)三色标记算法是什么。HTTP的发展史,从0.9讲到2.0,做了哪些改动。因为是提到了WebScoket,简单的说了说。TC.
2021-08-16 10:52:03
140
原创 发布本地jar包到maven Nexus私服
一、release版本(发布版)这个在界面上就可以发布了,很简单二、发布其他版本以snapshot(快照版)为例,nexus3以后的web端不提供直接上传快照的页面。mvn deploy:deploy-file -DgroupId=com.aaa -DartifactId=bbb -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=bbb-0.0.1-SNAPSHOT.jar -Durl=http://192.168.1.189:8081/reposit
2021-04-21 11:22:27
149
转载 JVM面试题
10个经典又容易被人疏忽的JVM面试题对象一定分配在堆中吗?有没有了解逃逸分析技术?「对象一定分配在堆中吗?」 不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。「什么是逃逸分析?」逃逸分析(Escape Analysis),是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围,从而决定是否要将这个对象分配到堆上。❝逃逸分析是指分析指针动态范围的方法,它同编译
2021-04-14 09:50:04
572
原创 Failed to parse mapping resource......
mapper没有识别到,可以试试配置文件中,加入别名mybatis:typeAliasesPackage:
2021-03-31 18:16:00
2332
原创 get请求参数带“+”等特殊字符无法正确识别
+号会被识别成空格JavaScript: window.self.location="index.jsp?data="+encodeURIComponent(encodeURIComponent(url));java: searchtext=java.net.URLDecoder.decode(data,"UTF-8"); 另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了:java代码: String s = new Str
2021-03-31 10:23:41
1711
原创 mysql的坑 ,明明只有一条匹配的记录,却查出多条记录
我这边的原因是dept_name是varchar类型,所以等于Long类型,会有个转换的过程,这个过程出了问题,转成string就行了
2021-03-18 11:31:09
976
原创 Debian 9 离线安装mysql8.0.13
1、下载对应版本MySQL地址:https://dev.mysql.com/downloads/mysql/下载如下包:2、上传并解压tar -xvf mysql-server_8.0.13-1debian9_amd64.deb-bundle.tar得到一堆文件如下:3、安装由于依赖,需要按如下顺序安装先安装libaio1:apt-get install libaio1mysql-common:dpkg -i mysql-common*mysql-community-client:d
2020-12-23 15:02:01
1401
原创 Springboot如何在项目启动时自动运行自定义方法,亲测有效
项目需求:项目启动时初始化sql,后期修改sql,都可以直接修改sql文件,重启项目 自启动生效。网上有很多方式,我基本上一一试过了,在这里推荐两种,亲测绝对有效方法一实现ApplicationRunner接口并实现里面的run方法,并将该类通过@Component 注入到spring里,如下所示:package com.springboot.demo.init;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org
2020-12-22 14:53:51
1260
转载 震惊!!!用了这些方法,他的代码里再也没有if-else了
前言代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案。优化方案一:提前return,去除不必要的else如果if-else代码块包含return语句,可以考虑通过提前return,把多余else干掉,使代码更加优雅。优化前:if(condition){//doSomething}else{ return;}优化后:if(!condition){ return;}//doSomethin
2020-11-25 11:49:03
1721
原创 观察者模式 vs 发布订阅模式
《Head First设计模式》中有句话:Publishers + Subscribers = Observer Pattern.即 出版者 + 订阅者 = 观察者模式。那是不是 观察者模式和发布订阅模式就是一样的呢?观察者模式所谓观察者模式,其实就是为了实现松耦合(loosely coupled)。用《Head First设计模式》里的气象站为例子,每当气象测量数据有更新,changed()方法就会被调用,于是我们可以在changed()方法里面,更新气象仪器上的数据,比如温度、气压等等。但是
2020-10-14 11:08:49
152
原创 响应式编程 rx.js redux
响应式编程是一种通过异步和数据流来构建事物关系的编程模型。是基于观察者模式的js的实现。理解如果要直接理解,可能比较抽象,但我们可以引用百度百科的例子;例如:a = b + c; 这句代码将b+c的值赋给a,而之后如果b和c的值改变了不会影响到a,然而,对于响应式编程,之后b和c的值的改变也动态影响着a,意味着a会随着b和c的变化而变化。响应式编程过程中,一般有以下几个组件,Observable/Operator/Subscriber;对应到代码中就是不同类。这个流程,可以简单的理解为:Observ
2020-10-14 09:36:22
374
原创 基于java处理ofd格式文件
一、ofd格式介绍国家发布过一份关于ofd编码格式的资料,本来我想传上去的发现资源重复了,你们可以找找看,没有的话留个邮箱,我看到会发给你们的ofd本质上其实是一个压缩文件,咱们把他当做一个压缩包来处理就好了,思路是先解压,对解压后的文件进行解析处理,解压后是xml文件,java有很多处理xml的类,这里我推荐dom4j,原因是相对来说功能全、速度快,处理完后再进行压缩,保存为ofd格式即可ofd的阅读器我也有,只是是公司的,不方便共享了,大家可以找网上在线阅读器二、xml处理工具类import
2020-09-17 16:23:18
8351
17
原创 word转html在前端页面显示
近日碰到该需求,遇坑记录于此,望能帮助到其他伙伴。word转HTML时图片的处理我分为两种解决方案:1、图片保存在本地文件夹。2、转为base64。以下分doc与docx,不同格式处理方法略有不同。前端我用的是vue,直接通过“v-html”显示html文本一、图片保存本地坑1大多数浏览器都不能以形如(file:///C://xxx)的形式直接访问本地文件,故需要在后台配置文件中配置虚拟路径映射到本地盘符。@Configurationpublic class ResourcesConfig
2020-08-26 14:54:55
4871
2
原创 后端返回流,前端vue展示各种类型文件(word\pdf\图片)
这周有个需求做个文档平台,出于安全与性能考虑,我选择将文件前后端已流的形式交互,而不是直接访问地址。技术栈:springboot 2.0 + vue用到的开源技术有:pdf.js(展示pdf) 、 editor-ui(在线展示、编辑word)具体用法有很多帖子,可以去参考一下,作者们的git上也写的很详细了,我就不抢人家功劳了。这里我贴一个比较深的坑: getObjectURL(file) { let url = null; if (window.c
2020-08-22 18:04:00
5464
8
原创 面试题之SQL优化——是否用过执行计划(explain)
前几天找工作,面试到sql优化,explain命令应该大家都用到过,只是之前我也没注意过具体参数的含义,导致面试时很尴尬,事后学习了一下。Explain命令是用来直接检查sql语句的,有两个参数很重要“Type”和“Extra”。一、TypeExplain中的“Type”MySQL的官网解释为:连接类型(the join type)。它描述了找到所需数据使用的扫描方式。最为常见的扫描方式有: 1、system:系统表,少量数据,往往不需要进行磁盘IO; 2、const:常量连接; 3、eq
2020-06-11 09:59:28
1750
原创 lambda表达式的使用
lambda表达式通常是用来实现类或接口的,优点是无须声明,也无须重写了,但是有个限制就是这个接口中只能有一个方法,因为从lambda的表达式上我们就可以看出端倪了,直接调用类,传参数,连方法名都省了,如果不止一个方法,毫无疑问会产生冲突无法识别。java lambda表达式的优缺点:优点:代码简洁,开发迅速方便函数式编程非常容易进行并行计算java引入lambda,改善了集合操作(引入Stream API)缺点:代码可读性变差2 .使得语言学习曲线陡峭,学习难度提升性能方面,在非并行
2020-06-10 18:01:28
262
原创 Springboot项目启动时cloud not find bean错误
前两天碰到个很恶心的错,启动时找不到mapper、service的类,因为springboot是扫描包,生成bean的机制,所以最常见的错误是找不到的这个类不在启动类的同级或者它的下级包,但我是在它的同级包下的,就比较迷惑。上述这个解决方法是加个@Mapper注解,@MapperScan({“package”}),如果需要包含多个包名,用逗号隔开即可。另一个常见引发这种错误的原因可能是依赖冲突...
2020-04-18 19:58:31
2013
原创 关于引入依赖报错的问题Inspects a Maven model for resolution problem
近日想用Swagger生成接口文档,导入依赖的时候发现如下错误。一开始我搜索Inspects a Maven model for resolution problem这个错误的解决方案,试了几种都是不行最后解决方案是把本地仓库的包都清空,重新导入。...
2020-04-10 13:04:22
303
原创 最简单的计算24点
跟女朋友玩24点,碰到两个人都算不出来,又不知道到底能不能算怎么办呢,于是就自己写个代码看看是否有结果。废话不多说,直接上代码package com.practice;import java.util.*;public class Main { public static int operate(int j,int k,String l) { if(l=="+"...
2020-02-09 17:04:31
525
原创 浅谈Java对象在内存中的结构和锁状态升级过程
java对象在堆中主要分为四部分结构, 分别是对象头MarkWord, 对象指针ClassWord, 实例对象(如果对象是数组的话, 这里需要再分成两部分, 多了一个存储数组长度的数据位), 8字节对齐位. 下面以64位的JVM为例, 分析内存中对象的各个结构分别存储什么信息和作用.Mark WordMark Word用来存储对象的 identity hash code, Thread ID...
2019-12-25 15:59:29
272
5
标准格式下的ofd文档.ofd
2020-09-15
基于java的贪吃蛇,完整毕设,包括论文
2019-04-22
java+mysql的小型店铺管理系统
2019-04-22
基于matlab的dicom、nii文件读取,去噪增强处理
2019-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人