创建骨架工程 生成骨架工程:https://blog.csdn.net/jeikerxiao/article/details/60324029 1. MartianDemo项目骨架生成1.1. 导入项目骨架生成模块:com.jd.martian martian-demo-archetype 1.0.0-SNAPSHOT1.2. 创建骨架工程:输入项目名称, 分组id, 包名称等信息, 下一步...
2020-12-23 随机瓜分百万红包年关将近,各类促销活动即将上线,类似支付宝集五福的那种,用户凑齐卡片之后,可以瓜分百万红包。因为这种瓜分活动集齐的人数肯定是很多的,直接随机之后再扣减,感觉不是很合适。大致思路如下:因为是集卡截止后再进行红包瓜分的,集齐的用户可能几十万上百万,所以就先根据集齐卡片的用户数,先将红包随机瓜分好,存放起来,等到瓜分的时候,直接领取就行了。假设5个人集齐,等长度生成一个随机数数组[2,5,9,8,6]。根据这个随机数数组里面的值所占整个数组元素和(30)的比例来计算每个红包的.
81.安心技术梳理 - 开发中,路由切量最快捷工具 - 干货 1.设定路由的目标字段,如:userId2.设置需要切量的值,如:range,1 - 10代表 10% - 100%int hashCode = Math.abs(userId.hashCode()) % 10;if (hashCode < range) { 执行任务}3.完成
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
5.安心快修 - Vue运行-Nodejs安装问题-win10执行npm出现Error: EBUSY: resource busy or locked 错误解决方法 最近使用win10从github上down下一个vue项目 安装执行的时候出现了如下错误(未启动360等杀毒软件):我的最终解决办法如下图:找到项目文件夹》右键属性 只读点掉不选 》应用即可...
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
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...
79.安心技术梳理 - 团队合作开发常见影响代码性能的注意点,干货 影响代码性能的点,仅供参考1.防止N+1查询,循环里面套查询和外部查询接口(提供批量服务解决)2.数据库查询频繁的固定内容,增加缓存逻辑,防止并发下大量查询数据库操作3.涉及到数据库更新操作,避免在查询时候有更新操作事例:1.N+1影响性能,单个循环查询消耗时间会翻倍,影响性能public List<ActInfo> getActInfo(List<Long> actIds){ if(CollectionUtils.isEmpty(actIds...
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);...
77.安心技术梳理 - 开发中 - 异常- 类和方法的创建和使用,干货 开发中异常的输出是必要的,我们需要统一的数据标准,做个统一工具,仅供参考1.实际应用的方式(1)创建常量返回异常结果import com.Result;Result.failResult(CocoonErrorCode.PURCHASECARD_ACT_EXCEPTION, "付费卡活动异常")(2)创建异常类返回throw BusinessException.of(CocoonErrorCode.PAIDCOUPON_NOEXIT).tips("查询列表为空");2.实现的工具类
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 { ...
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); ..
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
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,
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
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
70.安心技术梳理 - 高效率【并发】请求多个接口工具实现2,干货 采用并发类中锁的特性完成int num = 5;//并发执行的数量ConcurrentLinkedQueue<Future<DataVo>> linkedQueue = new ConcurrentLinkedQueue<>();CountDownLatch cancelDownLatch = new CountDownLatch(num);//线程池-创建ThreadFactory threadFactory = new ThreadFactoryBuil
69.安心技术梳理 - Redis实现【分布式锁】工具,含超时时间/等待时间干货 1.创建引入一个Redis工具方法类2.实现工具 -redisClient为工具String lockKey = "key"; 1000L后获取锁,20000L维持锁存在总时长DistributedLocker.instance(redisClient) .lock(lockKey, 1000L, 20000L, () -> this.method(提交方法));实现工具类:import com.RedisClient;im.
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