zhangSir134
码龄4年
  • 2,413,544
    被访问
  • 236
    原创
  • 6,987
    排名
  • 3,871
    粉丝
关注
提问 私信

个人简介:不断思考,不断总结

  • 目前就职: 北京京东世纪贸易有限公司
  • 加入CSDN时间: 2017-11-28
博客简介:

zhangsir的博客

博客描述:
非技术类文章在这里:https://www.cnblogs.com/java-zhangshuai
查看详细资料
  • 6
    领奖
    总分 2,360 当月 50
个人成就
  • 获得435次点赞
  • 内容获得128次评论
  • 获得803次收藏
创作历程
  • 1篇
    2022年
  • 70篇
    2020年
  • 109篇
    2019年
  • 68篇
    2018年
  • 1篇
    2017年
成就勋章
TA的专栏
  • 笔记
    3篇
  • groovy
    1篇
  • 随想
    9篇
  • 源码分析
    5篇
  • 读书笔记
    1篇
  • 工具类汇总
    1篇
  • leetcode
    1篇
  • 怎么和产品撕逼
    1篇
  • 区块链
    1篇
  • java基础
    35篇
  • java面试笔记
    8篇
  • 设计模式
    10篇
  • go语言
    2篇
  • lua
    3篇
  • python
    3篇
  • 广告行业
    3篇
  • 框架
    3篇
  • docker
    2篇
  • 消息队列mq
    9篇
  • JDK新特性
    8篇
  • 数据库
    31篇
  • 设计模式
    14篇
  • springmvc
    4篇
  • jvm
    1篇
  • 错误记录
    14篇
  • 后端开发看前端
    11篇
  • 网络
    6篇
  • 记录
    30篇
  • 其他
    5篇
  • 大数据
    11篇
  • 开发软件
    7篇
  • 运维
    2篇
  • 安全
    8篇
  • spring boot
    8篇
  • spring
    4篇
  • 分布式
    14篇
  • 人生
    3篇
  • maven
    2篇
  • 线程相关
    3篇
  • linux
    3篇
  • 架构
    10篇
  • 转载
    7篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

若依前后分离项目,发布在阿里云效中

配置代码源配置构建信息mvn -B clean package -pl ruoyi-admin -am -Dmaven.test.skip=true -Dautoconfig.skip项目名称和pom文件中保持一致,都叫ruoyi-adminpom中的这个,也保持一致指定target下的jar包位置指定deploy.sh的位置将deploy.sh的APP_HOME中的XXX替换成项目目录!/bin/bashPROG_NAME=$0ACTION=$1ENV=$2# 修改
原创
发布博客 2022.01.24 ·
1724 阅读 ·
0 点赞 ·
0 评论

java file.renameTo返回false的原因记录

需要对文件夹下的文件重命名,发现返回false了,先用main方法测试,发现没问题,如下 public static void main(String[] args) throws IOException { File file1 = new File("D:\\aabb.xml"); File file2 = new File("D:\\ccdd.xml"); boolean b = file1.renameTo(file2); Syste
原创
发布博客 2020.12.19 ·
6352 阅读 ·
1 点赞 ·
1 评论

分布式基础

四大基础理论拜占庭将军问题CAP 理论ACID 理论BASE 理论八大分布式协议和算法Paxos 算法Raft 算法一致性 Hash 算法Gossip 协议算法Quorum NWR 算法FBFT 算法POW 算法ZAB 协议
原创
发布博客 2020.12.14 ·
5332 阅读 ·
0 点赞 ·
0 评论

互联网技术部门该如何管理

互联网技术部门该如何管理一、敏捷开发1.快速开发、快速迭代。2.组件式开发,避免重复造轮子。3.制定代码标准。4.并行开发,高效配合。5.单元测试必须覆盖所有核心业务。二、DevOps流程建立起来1.建立三套环境:测试、SandBox、正式。2.建立自动化流程:CI/CD。3.开发人员需全程参与到开发、测试、运维整个流程。4.建立监控报警、日志收集工具集。5.快速响应,所有项目成员都参与。三、代码版本控制及Code Review1.开发的组件或改动过的第三方SDK都需要加入代码仓
转载
发布博客 2020.12.05 ·
5827 阅读 ·
0 点赞 ·
0 评论

java 调用groovy脚本,实现多个sql按指定逻辑运行,可做报表预聚合

java 调用groovy脚本,实现多个sql按指定逻辑运行,可做报表预聚合1、引入pom <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> <version>2.1.6</version> </depende
原创
发布博客 2020.12.01 ·
6054 阅读 ·
0 点赞 ·
0 评论

报表设计调研分享

公司结算系统要做一个内部报表,想自己开发,调研了市面上一圈报表,快把github翻烂了,也没找到一个合适的。之前给做过一个自定义sql查询的,但最终是因为系统太过复杂,导致最终sql复杂到没法写了,而且超级大的sql,特别不好维护。现在把之前的调研结果分享出来,希望后人少走弯路。收费的:帆软报表目前市场占有率好像最高,功能较为齐全,适应大多数行业的功能,价格较贵,基础版价格:80000元/服务器,高级版价格:500000/服务器软件下载地址:http://www.finereport.com/
原创
发布博客 2020.11.26 ·
6205 阅读 ·
0 点赞 ·
0 评论

mysql 报错解决思考Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column

mysql报错:[Err] 1055 - Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘库名.表名.字段’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by分析发生这个错误,一般是
原创
发布博客 2020.11.24 ·
7604 阅读 ·
9 点赞 ·
2 评论

微信小程序支付流程(新手教程)

微信小程序支付流程:一、前期申请准备工作1、小程序注册,要以公司的以身份去注册一个小程序,才能开通微信支付权限;个人申请的小程序是不具备“微信支付”功能的!但个人小程序可以生成微信支付的那个收款二维码,勉强可以代替下。公司需要开头对公账户,申请小程序的时候要通过小额打款来验证公司和对公账户。2、绑定商户号。小程序注册流程:https://kf.qq.com/faq/170109iQBJ3Q170109JbQfiu.html小程序注册入口:https://mp.weixin.qq.com/cg
原创
发布博客 2020.11.07 ·
10999 阅读 ·
2 点赞 ·
1 评论

vue 每次弹框都初始化

之前弹框都是下图这种:通过detailOpen变量控制是否显示弹框但这种最近在整合tinymce富文本编辑器的时候,发现第二次弹框数据没有回填原因是因为第一次弹框关闭后,没有初始化,从而影响了后面的弹框功能。修改成下图就好了:...
原创
发布博客 2020.11.03 ·
8261 阅读 ·
2 点赞 ·
0 评论

mysql8.0 线上线下数据库版本不一致导致的问题

问题:线上注册失败,线下测试环境没问题update t_authentication_code set invalid = 0,update_time = sysdate() where email = ‘XXX’ and code = ‘XXX’ and invalid = 1;同样的sql,线下执行成功,线上却一直没有修改成功分析:排除其他原因后,最后发现线上mysql的版本是mysql8,而线下测试数据库是mysql5。再看建表语句,果然也不一样,尤其是排序规则线上:CREATE TA
原创
发布博客 2020.10.31 ·
7285 阅读 ·
0 点赞 ·
0 评论

mysql 报错 Specified key was too long; max key length is 767 bytes,开启系统变量:innodb_large_prefix

mysql 报错 Specified key was too long; max key length is 767 bytes当mysql数据库的字符集使用了utf8mb4,就很容易在执行建表sql的时候报这个错误。原因:mysql有个系统变量innodb_large_prefix,如果开启了,索引键前缀限制为3072字节;如果禁用了,索引键前缀限制为767字节。当mysql数据库的字符集使用了utf8mb4,每个字符最大的字节数为4,如果建表语句中,有类似varchar(255)的字段,4*
原创
发布博客 2020.10.19 ·
7959 阅读 ·
0 点赞 ·
0 评论

关于SimpleDateFormat线程不安全的源码分析

SimpleDateFormat,线程不安全,源码分析1、先看SimpleDateFormat类图SimpleDateFormat继承了DateFormatDateFormat中有个成员变量是Calendar,这个先记住,线程不安全主要就是因为这个成员变量2、看下图SimpleDateFormat的parse方法这个方法,主要就两步,第一步是针对入参text做了一系列操作,这里可以省略不看第二步就是下图代码中的红框部分:calb.establish(calendar),这个入参就是上面说的
原创
发布博客 2020.10.12 ·
7540 阅读 ·
1 点赞 ·
1 评论

quartz 本地有效,线上失效的问题

问题:最近开了一个新项目,spring boot 整合了quartz,出现了一个问题,就是当项目连接到本地电脑的数据库时,一切正常。但是当项目连接远程linux上的数据库的时候,发现定时任务不灵了,也不是不执行,比如手动执行一次这个操作,点一下没反应,再点一下,却执行两次。调试:看了下源码,整个手动执行一次的逻辑是这样的:1、当页面点执行一次,后台qrtz_triggers表会插入一条新记录,代表马上要执行了2、在org.quartz.core.QuartzSchedulerThread#run方
原创
发布博客 2020.09.28 ·
7786 阅读 ·
0 点赞 ·
0 评论

quartz 报错:Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS‘ doesn‘t exist

问题:spring-boot 整合quartz的时候,连接windows的mysql的时候好好的,然而用linux上的mysql的时候,启动就报了这个错:Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS’ doesn’t exist分析:首先用windows的mysql是没问题的。其实linux的mysql也是有这个表的,但由于是从windows复制过去的,所以表名都是小写的,而quartz启动的时候找的是大写,所以认为test.QRTZ
原创
发布博客 2020.09.25 ·
13758 阅读 ·
7 点赞 ·
5 评论

【读书笔记】--- 《码出高效:java开发手册》

这几天读了几本书,突然觉得可以写点什么,因为我也看了不少书了,于是就有了个想法,我可以在我看过的每本书后,把我的一些想法记录下来,一方面可以供以后回忆,一方面可以让读者看到后,对这本书有一些更详细的了解,然后再确定要不要买。正文:这本书涉及到的知识点比较多,大多数都比较浅一点,整体上适合初入职场1年以上的同学,,但不是很适合新手入门。虽然这样,但本书也有很多地方写的也挺细的,比如讲https的那块,是我看到过的所有相关文章中比较详细且易懂的。但我还是觉得值得一买,因为当你仔细阅读这本书,你会发现这本
原创
发布博客 2020.09.23 ·
7501 阅读 ·
1 点赞 ·
1 评论

【转载】广告系统架构解密

广告、增值服务、佣金,是互联网企业最常见的三种盈利手段。在这3大经典中,又以广告所占的市场份额最大,几乎是绝大部分互联网平台最主要的营收途径,业务的重要性不言而喻。从技术角度来说,广告业务涉及到 AI算法、大数据处理、检索引擎、高性能和高可用的工程架构 等多个方向,同样有着不错的技术吸引力。我从去年开始接触广告业务,到现在差不多一年时间了。这篇文章将结合我的个人经验,同时参考业界的优秀案例,阐述下广告系统的架构实践方案,希望让大家有所收获。内容包括以下3部分:广告业务简介面临的技术挑战广告系统架
转载
发布博客 2020.09.22 ·
7532 阅读 ·
0 点赞 ·
0 评论

api接口设计

api接口设计健壮性对外提供的接口,最好支持幂等性,即相同的请求重复调用,服务端的操作应该只有一次,并且每次返回的结果应该是一样的。一般的做法是要求客户端在每次调用的时候带上唯一键,服务端第一次正常处理,并缓存唯一键和结果,后面再有重复调用,即可直接获取缓存结果返回。如果客户端没有唯一键的条件,也可以要求传时间戳,用时间戳作为唯一键。对外的接口,粒度能细就细,最好不要是那种入参是type,然后服务端根据type类型返回不同的数据,这样容易被调用方猜到一些服务端不想暴漏的内容。举个例子,比如你要
原创
发布博客 2020.09.09 ·
7559 阅读 ·
2 点赞 ·
1 评论

redis 常见基础面试题

1、在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?面试官心理分析这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬。只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯定不太好,觉得你平时思考太少,就知道干活儿。面试题剖析项目中缓存是如何使用的?这个,需要结合自己项目的业务来
转载
发布博客 2020.08.15 ·
8360 阅读 ·
4 点赞 ·
0 评论

【错误记录】Invalid character found in method name. HTTP method names must be tokens

错误日志[2020-08-14 10:47:11.262] [http-nio-8093-exec-7] [INFO] [o.a.c.h.Http11Processor] [Error parsing HTTP request headerNote: further occurrences of HTTP header parsing errors will be logged at DEBUG level.]java.lang.IllegalArgumentException: Invalid ch
原创
发布博客 2020.08.14 ·
7618 阅读 ·
0 点赞 ·
0 评论
加载更多