孜梓不倦
码龄11年
  • 914,767
    被访问
  • 90
    原创
  • 1,606,347
    排名
  • 83
    粉丝
关注
提问 私信

个人简介:胡搅蛮缠地坚持

  • 加入CSDN时间: 2011-05-18
博客简介:

majunzhu的博客

查看详细资料
个人成就
  • 获得181次点赞
  • 内容获得69次评论
  • 获得783次收藏
创作历程
  • 1篇
    2021年
  • 34篇
    2020年
  • 125篇
    2019年
  • 108篇
    2018年
  • 2篇
    2017年
成就勋章
TA的专栏
  • 安心技术
    102篇
  • 安心快修
    6篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

创建骨架工程

生成骨架工程:https://blog.csdn.net/jeikerxiao/article/details/60324029 1. MartianDemo项目骨架生成1.1. 导入项目骨架生成模块:com.jd.martian martian-demo-archetype 1.0.0-SNAPSHOT1.2. 创建骨架工程:输入项目名称, 分组id, 包名称等信息, 下一步...
原创
发布博客 2021.03.30 ·
100 阅读 ·
0 点赞 ·
0 评论

2020-12-23

随机瓜分百万红包年关将近,各类促销活动即将上线,类似支付宝集五福的那种,用户凑齐卡片之后,可以瓜分百万红包。因为这种瓜分活动集齐的人数肯定是很多的,直接随机之后再扣减,感觉不是很合适。大致思路如下:因为是集卡截止后再进行红包瓜分的,集齐的用户可能几十万上百万,所以就先根据集齐卡片的用户数,先将红包随机瓜分好,存放起来,等到瓜分的时候,直接领取就行了。假设5个人集齐,等长度生成一个随机数数组[2,5,9,8,6]。根据这个随机数数组里面的值所占整个数组元素和(30)的比例来计算每个红包的.
转载
发布博客 2020.12.23 ·
107 阅读 ·
0 点赞 ·
0 评论

81.安心技术梳理 - 开发中,路由切量最快捷工具 - 干货

1.设定路由的目标字段,如:userId2.设置需要切量的值,如:range,1 - 10代表 10% - 100%int hashCode = Math.abs(userId.hashCode()) % 10;if (hashCode < range) { 执行任务}3.完成
原创
发布博客 2020.07.31 ·
147 阅读 ·
0 点赞 ·
0 评论

构建高性能高并发系统.docx

发布资源 2020.06.16 ·
docx

6.安心快修 - WebStorm中通过npm进行打包Vue项目操作

1.打包报错信息:2.因为package.json文件里面没有配置build脚本,所以报以上错误!3.解决方案:在package.json中的scripts中添加build脚本:{ "scripts": { "build": "cross-env NODE_ENV=production webpack --config webpack.config.js" } }4.其他问题:有可能出现 ‘cross-env’ 不是内部或外部命令,也不是可运行的程序 的错误通过 npm i
转载
发布博客 2020.06.11 ·
589 阅读 ·
0 点赞 ·
0 评论

5.安心快修 - Vue运行-Nodejs安装问题-win10执行npm出现Error: EBUSY: resource busy or locked 错误解决方法

最近使用win10从github上down下一个vue项目 安装执行的时候出现了如下错误(未启动360等杀毒软件):我的最终解决办法如下图:找到项目文件夹》右键属性 只读点掉不选 》应用即可...
转载
发布博客 2020.06.04 ·
2665 阅读 ·
0 点赞 ·
0 评论

4.安心快修 - Vue运行-Nodejs安装及环境配置

1、下载安装包下载地址:https://nodejs.org/zh-cn/download/根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包.msi和.zip格式区别:1、.msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序。说白了.msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。2、.zip是一个压缩包,解压之后即可,不需要安装image.png
转载
发布博客 2020.06.04 ·
114 阅读 ·
0 点赞 ·
0 评论

80.安心技术梳理 - 开发对敏感数据加密和解密操作工具,干货

对重要敏感数据进行统一加密和解密操作1.实践类import com.security.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class DecEncUtils { private static final Logger logger = LoggerFactory.getLogger(DecEncUtils.class); //加密 public static String bui...
原创
发布博客 2020.06.02 ·
291 阅读 ·
0 点赞 ·
0 评论

79.安心技术梳理 - 团队合作开发常见影响代码性能的注意点,干货

影响代码性能的点,仅供参考1.防止N+1查询,循环里面套查询和外部查询接口(提供批量服务解决)2.数据库查询频繁的固定内容,增加缓存逻辑,防止并发下大量查询数据库操作3.涉及到数据库更新操作,避免在查询时候有更新操作事例:1.N+1影响性能,单个循环查询消耗时间会翻倍,影响性能public List<ActInfo> getActInfo(List<Long> actIds){ if(CollectionUtils.isEmpty(actIds...
原创
发布博客 2020.06.02 ·
120 阅读 ·
0 点赞 ·
0 评论

78.安心技术梳理 - 开发中常用统一工具(时间/常量/缓存),干货

团队开发中工具的统一是必要的,方便管理和维护,常用的几种,仅供参考1.时间工具类import java.util.concurrent.TimeUnit;public class CacheTime { public static final Long ONE_SECONDS = TimeUnit.SECONDS.toSeconds(1L); public static final Long ONE_MINUTES = TimeUnit.MINUTES.toSeconds(1L);...
原创
发布博客 2020.06.02 ·
121 阅读 ·
0 点赞 ·
0 评论

77.安心技术梳理 - 开发中 - 异常- 类和方法的创建和使用,干货

开发中异常的输出是必要的,我们需要统一的数据标准,做个统一工具,仅供参考1.实际应用的方式(1)创建常量返回异常结果import com.Result;Result.failResult(CocoonErrorCode.PURCHASECARD_ACT_EXCEPTION, "付费卡活动异常")(2)创建异常类返回throw BusinessException.of(CocoonErrorCode.PAIDCOUPON_NOEXIT).tips("查询列表为空");2.实现的工具类
原创
发布博客 2020.06.02 ·
106 阅读 ·
0 点赞 ·
0 评论

76.安心技术梳理 - java开发中枚举类的创建使用,干货

开发中枚举类的使用是狠广泛的,下面是常见的创建类型,仅供参考1.普通枚举public enum OrderStatusEnum { WAIT_STATUS, OVER_STATUS;}2.键值对枚举(含二进制表示方式)import org.apache.commons.lang3.StringUtils;import java.util.ArrayList;import java.util.List;public enum UserClassifyEnum { ...
原创
发布博客 2020.06.02 ·
135 阅读 ·
0 点赞 ·
0 评论

75.安心技术梳理 - java8流式编程,stream使用的几种场景,干货

1.遍历封装 (List - List)List<CouponDataInfo> couponDataInfos = dataInfos.stream().map(a -> { CouponDataInfo couponDataInfo = new CouponDataInfo(); couponDataInfo.setCouponId(a.getCouponId); couponDataInfo.setCouponKey(a.getCouponKey); ..
原创
发布博客 2020.06.01 ·
308 阅读 ·
1 点赞 ·
0 评论

74.安心技术梳理 - 结果对象映射输入对象,做数据封装,重写equals和hashCode,干货

对象之间数据映射操作,将结果对象的数据映射到输入对象,复用equals和hashCode实现,仅供参考:1.处理主流程:import javax.annotation.Resource;import java.util.List;import java.util.Map;import java.util.stream.Collectors;public class HandleData { @Resource private CouponService couponServ
原创
发布博客 2020.06.01 ·
88 阅读 ·
0 点赞 ·
0 评论

73.安心技术梳理 - 创建本地缓存类实现,干货

本地缓存工具实现,仅供参考import com.google.common.cache.CacheBuilder;import com.google.common.cache.CacheLoader;import com.google.common.cache.LoadingCache;import java.util.concurrent.TimeUnit;public class LoadingCacheUtils { private LoadingCache<String,
原创
发布博客 2020.06.01 ·
102 阅读 ·
0 点赞 ·
0 评论

72.安心技术梳理 - 前置校验,拦截器,切面编程思想2,干货

拦截器实现切面编程,实现仅供参考1、拦截器管理类:import com.RiskInterceptor;import com.UserInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.I
原创
发布博客 2020.06.01 ·
206 阅读 ·
0 点赞 ·
0 评论

71.安心技术梳理 - 链式开发,切面编程思想1,干货

链式开发,增加代码可读性,切面思想较少代码冗余,仅供参考学习。一、实用类链式主流程1:import com.HandlerChain;import com.RequestData;import com.ResponData;import com.Filter1ControlHandler;import com.Filter2ControlHandler;import com.result.Result;public class MenthHandlerChain extends H
原创
发布博客 2020.06.01 ·
133 阅读 ·
0 点赞 ·
0 评论

70.安心技术梳理 - 高效率【并发】请求多个接口工具实现2,干货

采用并发类中锁的特性完成int num = 5;//并发执行的数量ConcurrentLinkedQueue<Future<DataVo>> linkedQueue = new ConcurrentLinkedQueue<>();CountDownLatch cancelDownLatch = new CountDownLatch(num);//线程池-创建ThreadFactory threadFactory = new ThreadFactoryBuil
原创
发布博客 2020.05.31 ·
163 阅读 ·
0 点赞 ·
0 评论

69.安心技术梳理 - Redis实现【分布式锁】工具,含超时时间/等待时间干货

1.创建引入一个Redis工具方法类2.实现工具 -redisClient为工具String lockKey = "key"; 1000L后获取锁,20000L维持锁存在总时长DistributedLocker.instance(redisClient) .lock(lockKey, 1000L, 20000L, () -> this.method(提交方法));实现工具类:import com.RedisClient;im.
原创
发布博客 2020.05.19 ·
477 阅读 ·
0 点赞 ·
0 评论

68.安心技术梳理 - 拦截【请求IP】工具,干货

以下为加载请求的IP工具,供参考:import javax.servlet.http.HttpServletRequest;public class IpUtils { private static final Logger LOGGER = LoggerFactory.getLogger(IpUtils.class); private static final String UNKNOWN = "unknown"; private static final Strin
原创
发布博客 2020.05.19 ·
123 阅读 ·
0 点赞 ·
0 评论
加载更多