- 博客(136)
- 资源 (8)
- 收藏
- 关注
原创 uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)
【代码】uniapp 获取地理位置(uni#getLocation和高德sdk获取中文地址)
2023-10-11 16:25:59 998 1
原创 vue3+vite+pinia+axios+mock+ElementPlus:登录,动态路由,存储,网络(mock) js非ts纯前端
vue3+vite+pinia+axios+mock+ElementPlus js非ts 动态路由 含完整代码
2023-09-25 09:47:09 188
原创 Java面试复习网站和仓库——自用
疯狂创客圈JavaTutorial githubJavaHome githublearning-note githubarchitect-awesome githubadvanced-java githubtechnology-talk githubJava-Interview-Adcanced giteeJavaGuide gitee
2023-08-10 10:23:19 500
原创 EasyExcel读取多sheet excel异常
使用Spring Boot集成EasyExcel进行导入excel多sheet,执行异常。
2023-07-24 20:49:04 1557 2
原创 interview Java
新增元素,更新元素数量:1.先cas baseCount;2. 1失败,则cas CounterCell;3. 2失败,则死循环类2。CounterCell如何避免并发?定位CounterCell数组使用。基本是ReentrantLock和Condition组合使用。独占模式:tryXxx,如tryAcquire。子类:compareAndSetState。共享模式:xxx,如acquire。
2023-02-10 16:10:29 461
原创 interview mysql
interview mysqllist索引日志事务锁MVCC主从复制分库分表扩容和缩容常见问题索引失效场景生产隔离为什么RC而非RR索引优缺点索引类型:主键索引、唯一索引、普通索引、组合索引、全文索引字符串列的前缀索引组合索引的最左前缀原则聚簇索引、回表、覆盖索引、索引下推索引下推:对索引包含的字段先做判断,过滤不符合条件的记录,再进行回表数据结构:B+Tree、Hash日志类型内容补充错误
2022-05-22 18:40:19 194
原创 interview redis
interview redislist文件事件处理器数据类型及应用持久化过期键策略数据淘汰主从模式哨兵模式集群模式面试题1. 文件事件处理器socketIO多路复用程序队列+文件事件分派器事件处理器:命令请求处理器、命令回复处理器、命令应答处理器、…6.0 IO多线程IO操作多线程,命令执行仍为单线程2. 数据类型及应用基本类型:string、hash、list、set、zsethyperlogloggeobitmapbloom filter应用
2022-05-20 22:55:51 219
原创 interview jvm
interview-jvmlist运行时数据区类加载机制垃圾回收虚拟机对象探秘调优生产排查1. 运行时数据区程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存2. 类加载机制四种类加载器:启动类加载器、扩展类加载器、应用类加载器、自定义类加载器类加载执行过程:加载、连接(验证 准备 解析)、初始化、使用、卸载双亲委派模型破坏双亲委派原因:父类加载器需要委托子类加载器去加载class文件示例:Drive
2022-05-20 11:12:29 120
原创 vue+element ui 递归菜单
vue+element ui 递归菜单思路定义side-bar和side-bar-item两个component,根据传入的菜单树生成递归菜单side-barprops: {menus: Array}<template><div id="side-bar"> <el-menu v-if="menus && menus.length > 0" router> <side-bar-item v-for="(me
2022-05-10 14:09:33 903 1
原创 数据权限 基于mybatis plus插件
数据权限 基于mybatis plus插件方案关键:表create_by字段,需要做数据权限的某张表,根据当前登录用户的数据权限(例如ALL、ME、CUR_DEPT、CUR_DEPT_WITH_SUB_DEPT、CUSTOM)获取部门——>用户id,然后查询某张表时附加条件and create_by in [userIds]说明1、mp 拦截器中注入mapper,需要使用@Lazy懒加载,否则出现循环引用sqlcreate table ds_dept ( id bigint(20
2022-04-26 21:58:28 2021 1
原创 Spring Boot(25)集成minio图片服务器
Spring Boot(25)集成minio图片服务器安装集成依赖:minio配置Bean:MinioClient初始化:初始化bucket并设置policy上传操作要点:policy实现:resources下新增BucketPolicy.json文件,初始化时读取json文件进行设置policy(代码里封装json比较麻烦),并替换bucketName{ "Statement": [ { "Action": [ "s3:GetBucketLoc
2022-04-12 14:20:10 605
原创 Spring Boot Transactional注解与回滚异常
Spring Boot Transactional注解与回滚异常文章目录Spring Boot Transactional注解与回滚异常事务方法执行事务方法异常处理事务方法rollbackFor处理事务方法执行Object retVal;try { retVal = invocation.proceedWithInvocation();} catch (Throwable ex) { completeTransactionAfterThrowing(txInfo, ex);
2021-12-20 15:18:01 891
原创 Spring Boot(24)集成Redis lua实现限流
Spring Boot(24)集成Redis lua实现限流文章目录Spring Boot(24)集成Redis lua实现限流细节流程1. 注解定义2. 切面3. RedisScript4. 接口和异常细节lua脚本注解切面spel解析全局异常处理器流程1. 注解定义@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Limiters.class)publi
2021-12-17 14:21:29 638
原创 Spring Boot(23)单元测试——Mock
Spring Boot(23)单元测试——Mock文章目录Spring Boot(23)单元测试——Mock1. 模拟接口2. 编写测试补充1. 模拟接口功能:+两个字符串2. 编写测试说明:分层编写test一个小模块(单表)一个testservice会进行空检测,null作为空白字符串处理service:test@SpringBootTestclass DemoServiceImplTest { @Autowired private DemoServiceImpl
2021-12-16 21:54:51 352
原创 Java同步集合 源码摘要
Java同步集合 源码摘要文章目录Java同步集合 源码摘要1. 迭代器核心接口快速失败ArrayList#Itr2. ListArrayListLinkedList3. MapHashMapNode和成员变量及默认值哈希计算getputresize1.7 尾插法死循环作用:一种访问集合的方法1. 迭代器核心接口interface Iterator<E> { boolean hasNext(); E next(); // default方法,抛Unsupport
2021-12-10 17:05:02 441
原创 数据结构——树小记
数据结构——树小记文章目录数据结构——树小记简介平衡术AVL关键旋转插入删除删除叶子删除单孩子删除双孩子B-Tree关键分裂重平衡插入删除非叶子节点叶子节点B+Tree红黑树(略)关键平衡手段添加删除简介二叉树普通二叉树二叉查找树平衡树平衡二叉树 AVLB-TreeB+TreeR-B-Tree平衡术AVL关键平衡因子,旋转ps:新增或删除,导致高度变更,需向上递归检查,避免失衡旋转类型:LL、LR、RR、RLLR:先左旋后右旋LL:左旋插入定位到叶子,
2021-12-09 15:48:07 299
原创 数据库——MySQL笔记
数据库:MySQL笔记文章目录数据库:MySQL笔记基础索引和SQL优化索引慢查询原理日志事务&锁&MVCC事务锁MVCC小结疑问:MVCC还是next-key锁解决幻读?存储和读写:todo集群主从复制/读写分离分库分表设计规范refer基础数据模型数据库完整性三级模式/两级映像三范式存储引擎数据库设计流程索引和SQL优化索引类型结构使用建议失效场景where进行null判断:采用0、-1等默认值where使用!=和<>操
2021-12-08 14:14:56 553
原创 MyBatis原理总结
MyBatis执行流程文章目录MyBatis执行流程简介org.mybatis关键点架构原理流程第一步:读取配置文件,构造SqlSessionFactory方法签名处理流程parseConfigurationpropertiessettingstypeAliasespluginsenvironment其他标签第二步:构造SqlSession方法签名处理流程第三步:获取XxxMapper方法签名处理流程第四步:调用方法INSERT命令——>updateSELECT命令——>querytodo简
2021-12-04 15:44:36 316
原创 Spring Boot(22)集成MyBatis Plus实现读写分离
Spring Boot, MyBatis Plus, 自定义拦截器,中间件
2021-12-02 16:50:42 1277
原创 分布式一致性——Paxos
Paxos文章目录Paxos前言复制策略对比Basic-Paxos是什么角色casecase-1 无冲突case-2 XY冲突,X失败Y成功case-3 在case-2基础上,X发出round=3步骤refer前言一致性:CAPBASE一致性模型及算法:弱一致性最终一致性DNSGossip强一致性主从同步Paxos:basic-paxos、multi-paxos、fast-paxosRaft(multi-paxos)ZAB(multi-paxos)
2021-11-25 16:04:26 1706
原创 Spring Transaction
Spring Transaction文章目录Spring TransactionJDBC事务编程式事务核心接口demo步骤声明式事务两个注解事务处理流程小结JDBC事务基于Connection相关接口实现事务处理void setAutoCommit(boolean autoCommit);void setReadOnly(boolean readOnly);void setTransactionIsolation(int level);Savepoint setSavepoint(String
2021-11-24 14:13:29 703
原创 八股文目录
计算机基础操作系统计算机网络数据结构数据库系统Java语法基础Java IO和网络Java集合框架Java并发编程JVM框架SSMSBSC中间件mysqlnosqlmq搜索引擎zookeeperdubbo分布式基础理论::cap,base,共识算法解决方案:分布式锁,分布式事务,分库分表和分布式ID,限流 负载均衡 分布式一致性…系统设计高可用高并发高性能…线上问题排查高cpu:查线程堆栈,或死循环,或内存泄露导致频繁G
2021-11-24 00:36:16 1944
原创 Spring Boot(21)定时任务
Spring Boot(21)定时任务referhttps://www.xuxueli.com/xxl-job/步骤拉取代码,执行数据库脚本,运行调度服务编写定时任务访问调度中心,新建执行器并启动1. 调度服务下载地址:https://github.com/xuxueli/xxl-job.git, https://gitee.com/xuxueli0323/xxl-job.git数据库脚本路径:doc/db/tables_xxl_job.sql修改配置文件:数据源运行调度中心:xx
2021-11-22 17:10:38 88
原创 demo-dubbo
demo-dubbo文章目录demo-dubbo1. 简介2. 流程3. provider-service4. provider-service-impl4.1 pom.xml 依赖4.2 application.yml 配置4.3 启动类@EnableDubbo4.4 serviceimpl5. consumer-service5.1 pom.xml 依赖5.2 application.yml 配置5.3 启动类注解@EnableDubbo5.4 定义服务进行远程调用1. 简介一个Dubbo+Zoo
2021-09-03 09:57:07 72
原创 理论系列-分布式服务架构笔记
理论系列-分布式服务架构笔记1. 前言1.1 发展--1传统单体架构2服务化架构(SOA)3微服务4容器化5云原生传统单体架构:分层(应用层,服务层,存储层)服务化架构:服务组件(基于网络通信对外提供服务)实现一:Web Service实现二:ESB微服务架构:微小服务(通常用RESTful风格API通信)1.2 RPC框架--JDK RMIHessianSpring HTTP Invoke
2021-07-03 23:07:10 60
原创 理论系列-大型网站架构演进
理论系列-大型网站架构(笔记)文章目录理论系列-大型网站架构(笔记)1. 前言1.1 大型网站特点1.2 网站架构模式1.3 核心要素1.3.1 性能1.3.2 可用性1.3.3 伸缩性1.3.4 扩展性2. 演进2.1 初始阶段:一台服务器2.2 应用和数据库分离2.3 增加缓存2.4 应用程序集群2.5 数据库读写分离2.6 反向代理和CDN加速2.7 分布式文件系统、分布式数据库、NoSQL、搜索引擎2.8 服务拆分3. 高可用架构3.1 高可用网站架构3.2 高可用应用3.3 高可用服务3.4 高
2021-07-03 22:17:19 68
原创 demo系列-搜索引擎-ElasticSearch
demo系列-搜索引擎-Elasticsearch文章目录demo系列-搜索引擎-Elasticsearch1. Windows安装部署1.1 下载1.2 启动1.3 访问127.0.0.1:92001.4 [可选]elasticsearch-head插件2. Spring Boot集成Elasticsearch2.1 依赖2.2 配置2.3 Document2.4 repository+service2.5 ES#创建索引和搜索1. Windows安装部署1.1 下载https://www.ela
2021-07-02 09:49:45 220
原创 demo系列-消息队列-RocketMQ
demo系列-消息队列-RocketMQ文章目录demo系列-消息队列-RocketMQ1. Windows安装部署前提1.1 下载1.2 配置环境变量1.3 启动1.3.1 启动name-server1.3.2 启动broker1.3.3 下载|编译|启动rocketmq-console1.4 访问127.0.0.1:99992. Spring Boot集成RocketMQ2.1 依赖2.2 配置2.3 生产者2.4 定时任务:定时发送生产者2.5 消费者1. Windows安装部署前提JAVA
2021-07-01 10:42:53 122
原创 AnnotationConfigApplicationContext与ClassPathXmlApplicationContext区别
AnnotationConfigApplicationContext说明:入参传入一个@Configuration标示类,内部定义几个@Bean注册Bean配置类(入参类)刷新上下文AnnotationConfigApplicationContext#refresh流程注解区别于ClassPath在于加载的方式不同:XML方式,在实例化容器阶段,读取配置,注册为BeanDefinitionAnnotation方式,在BeanFactory后置处理器调用阶段,通过Configurat
2021-06-10 17:43:56 1087
原创 ClassPathXmlApplicationContext#refresh
ClassPathXmlApplicationContext#refresh流程1. 准备context: prepareRefresh()do:设置属性值startupDateSystem.currentTimeMillis()closedfalseactivetrue初始化所有占位符属性源验证被标记为required的属性是否可解析初始化属性值applicationListenersapplicationLi
2021-06-10 17:24:33 457
原创 三级缓存和代理
三级缓存和代理场景一:AB循环引用,A会被AOP处理A实例化,入三级缓存(getEarlyBeanReference),填充属性引起B的处理A:位于三级缓存,是target,属性填充阶段B实例化,入三级缓存,填充属性查三级缓存,触发getEarlyBeanReference执行,此阶段会进行AspectJAwareAdvisorAutoProxyCreator处理,返回A#proxyA#proxy移动到二级缓存B属性填充完成后续操作:初始化,其他处理,移动到一级缓存A:位于二级
2021-06-10 16:57:48 197
原创 Java集合 HashMap小结
集合 Map HashMap文章目录集合 Map HashMap①存储结构②冲突解决③hash④定位桶④定位节点⑤扩容机制⑥树化和链表化⑦快速失败机制 fail-fast⑧JDK 7的死循环其他①存储结构数组链表红黑树②冲突解决拉链法常见冲突解决方式:开放地址法:线性探测、平方探查、双散列函数探查拉链法再哈希法建立公共溢出区③hash^运算符:对应位相同,值为0,对应位不同,值为1即:0^0=0, 0^1=1, 1^0=1常用:x^0=x说明:key的has
2021-01-01 17:03:26 99
原创 编码——阿里巴巴Java开发手册笔记
编码——阿里巴巴Java开发手册笔记文章目录编码——阿里巴巴Java开发手册笔记①编程规约1、命名风格【强制】【规约】各层命名规约2、常量定义3、代码风格基本风格换行示例方法/if示例4、OOP规约5、日期时间6、集合处理7、并发处理8、控制语句9、注释规约10、前后端规约11、其他②异常日志1、错误码设计2、异常处理3、日志规约③单元测试④安全规约⑤MySQL数据库1、建表规约表容量2、索引规则3、SQL4、ORM⑥工程结构JVM参数⑦设计规约①编程规约1、命名风格【强制】不能以下划线或美元
2020-12-26 23:37:22 130
原创 lombok @Builder与.class
lombok @Builder与.class1:@Builder@Builder,生成的.class的构造器:Person(String name, SexEnum sex, int age, String description)@Builder + @NoArgs,生成的.class的构造器:编译报错,没有.class文件// @Builder所在行:14Error:(14) java: 无法将类 reflect.Person中的构造器 Person应用到给定类型;@Builder +
2020-12-20 01:08:55 293 1
原创 base-反射
base-反射功能创建实例获取构造器获取方法、获取属性、填充属性--getXxx获取pub,方法和属性还会获取父类的getDeclaredXxx获取pub pri等,限定为当前类声明的方法和属性democlass Base {}class Person extends Base {}Class<Person> personClazz = Person.class;创建实例获取Class<T>对象:三种方式Cl
2020-12-20 01:07:02 175 1
原创 理论篇:SOA/RPC/MSA—Spring Cloud
理论篇:SOA/RPC/MSA—Spring Cloud序列化和RPC框架早期的序列化协议:COM和CORBA。其中COM仅用于Windows平台,CORBA是跨平台 跨语言的序列化协议,版本和兼容性导致主键消亡。主流序列化协议:--优点缺点应用XML序列化协议跨平台、跨语言冗长复杂小数据量,不适合ms级性能要求JSON序列化协议跨平台、跨语言、可读性好空间开销大小数据量,不适合ms级性能要求FackBook Thrift序列化协议RPC框架
2020-12-16 17:56:30 258
vue3+vite+pinia+axios+mock+ElementPlus:登录,动态路由,存储,网络 js非ts纯前端
2023-09-25
vue-template-1.zip
2020-12-03
security.rar
2020-10-08
SQL 部门用户表1000w数据量.rar
2020-09-14
Linux C++ 服务器之线程池 C++11
2018-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人