Java
一只野生程序猿啊
一只心系人民群众的程序猿。主修Java,使用PHP,了解Python
展开
-
shell脚本Docker+spring boot一键启动(改进版)
启动后端脚本api-release.sh#!/bin/bash# 定义常量#TAG=dev_mvp1.1APP_NAME=zhaojian-api# 分支BRANCH=$1# 镜像名称TAG=$2# build coreecho "\ncd zhaojian-core/"cd zhaojian-core/echo "\ngit checkout ${BRANCH}"git checkout ${BRANCH}#!/bin/bash# 定义常量#TAG=dev_m原创 2021-08-11 10:36:44 · 631 阅读 · 1 评论 -
shell脚本Docker+spring boot一键启动
前言编写docker启动脚本,实现服务器上自动化启动,包括pull代码、maven打包、docker构建镜像、移除容器、重新启动。运行环境spring boot + docker脚本startWithDocker.sh#!/bin/bash # 定义常量TAG=dev_mvp1.1 #docker tagAPP_NAME=test-api #项目名称# 查看所有容器sudo docker ps -a# 获取容器IDcontainerId=`sudo docker ps -原创 2021-05-17 12:59:11 · 1069 阅读 · 0 评论 -
MD5加密,生成签名
问题相同的字符串,本地和服务器加密结果不一样,导致请求第三方接口时,签名验证失败解决方法!!记得设置编码,不同的编码加密得到的结果不一样,如果不设置,默认使用系统文件的编码String sign = DigestUtils.md5DigestAsHex(str.getBytes(“utf-8”));具体代码如下:/** * 签名算法 * * @param bodyParams * @return 签名字符串 */ public String sign(Map<Stri原创 2020-07-22 18:45:15 · 4046 阅读 · 0 评论 -
NullPointerException 没有堆栈
生产环境数据出问题,看服务器日志却没有堆栈信息只有如下一行错误提示异常信息:java.lang.NullPointerException没有详细的堆栈问题!!!传送门–> java堆栈信息不见了...原创 2020-01-07 20:47:58 · 3522 阅读 · 0 评论 -
spring boot oauth2 facebook
前言最近网站要接入facebook第三方登陆...记录一下遇到的坑接口测试facebook接口时,postman能调通,而项目里面,http请求一直报错:java.net.ConnectException: Failed to connect to graph.facebook.com/31.13.74.17:443小飞机代理:结论:因为facebook是国外的网站,在国内访问...原创 2020-01-13 21:46:37 · 974 阅读 · 0 评论 -
spring data jpa --- 自动更新字段
Jpa 自动更新字段实体中加入新增字段,重新编译,发现数据库中并没有生效。没有自动同步到数据库中。后面才了解到,如果是布尔类型,需要指定length,java中的false对应MySQL中的一个bit:0;true则对应1这样jpa才知道怎么去映射到数据库中。需要注意的是,代码中,类型用Boolean,而不用boolean。原因是字段定义为boolean,那么数据库中不能为null,否则...原创 2018-12-24 16:19:54 · 3848 阅读 · 0 评论 -
Spring 如何接收以is开头的boolean类型的参数?
前言spring @RequestBody接收is开头的参数,开发环境开发工具: IDEA问题直接看代码:参数不以is开头:/** * 布尔类型 不带is IDEA生成的get set方法如下: */@Column(name = &quot;best_pricing&quot;) private boolean bestPricing = false;/** * get方法...原创 2019-01-07 21:19:29 · 7789 阅读 · 0 评论 -
Spring @transactional注解声明式事务
前言发版前一天,遇到了一个乐观锁问题。产生乐观锁,肯定是同一时间,存在两个或者多个事务对同一条数据进行修改。假如有事务A和事务B,先commit的事务会成功,而另外一个事务就会失败。这里记录一下遇到的问题,以及解决方法和过程环境spring data jpa使用了@version + @transactional来进行事务管理和保证数据唯一问题退款过程,对接了微信,易宝,支付宝。...原创 2019-04-04 12:12:26 · 439 阅读 · 0 评论 -
spring dat jpa @version 乐观锁
前言Mysql使用Innodb引擎,支持事务,行锁,那么,高并发情况下,多个事务同时进行;如果多个事务对同一条数据进行操作,并且都成功了,肯定会出现脏读等问题,最终导致数据库的数据有问题。破坏了数据的原子性,唯一性,正确性。简单举个栗子:银行转账:小李卡里有10块钱。小李和小王同时来取钱,小李取2块钱,小王取2块钱。取钱操作加了事务。【预期结果,最后剩余: 10 - 2 - 2 =...原创 2019-04-03 18:44:46 · 1001 阅读 · 0 评论 -
Iterator移除元素
iterator移除元素移除list的某些元素demo/** * 搜索 */public String search(WhiteScreenSearchRequest request, AccountShort account) { try { String url = api_uri + "/white-screen/search"; ...原创 2019-07-09 17:29:06 · 1140 阅读 · 0 评论 -
Gson 实体转Json字符串 --- 报declares multiple JSON fields named XXX解决方法
前言很是气愤,将一个对象转json字符串,一直报declares multiple JSON fields named passengers。调试了很久,都没找到原因。就这样,一下午又过去了。。加班加班解决办法检查实体里面的每一个属性是否都有get,set方法!!!!!只要有一个属性没有,就会报这个错。我写了实体B继承了A,B中有一个属性没写get,set方法,就上当了。刚开始还以为...原创 2018-12-26 18:26:54 · 27415 阅读 · 11 评论 -
@override is not allowed when implement
@override注解用不了由于pom里面没有指定使用jdk的版本,导致写代码时idea提示该注解不可用。就很奇怪,写了这么久代码了,自己搭建一个框架,怎么会遇到这么奇葩的问题。原来,@override注解是jdk6+之后新增的,jdk5不支持。项目环境技术框架:spring boot + mybatis + mysql + maven开发工具:IDEA解决办法1.修改pom.xm...原创 2018-11-21 14:45:53 · 7376 阅读 · 0 评论 -
JAVA Json解析之json字符串转Map
前言昨天在修改订单这一块,因为我们可爱的产品大佬加了一个小小的新需求~~“首单”。 哟呵?首单?:针对用户A,如果这个用户有推荐人B,那么B就是A的直接上级。如果C有推荐人D,那么D是A的间接上级。 当用户存在上级(直接和间接),这一单均算是首单。。反正我刚开始是有点懵,一个用户居然可能会有两个首单,返利也不一样。问题因为订单走的是消息队列。订单支付完成,返利处理也是走的消息队...原创 2018-07-04 14:41:05 · 16160 阅读 · 0 评论 -
maven 启动成功 访问不了
前言今日,启动Maven项目,发现项目正常启动了,但是启用的maven 插件配置确不对。配置开发工具:IDEA 项目构建工具:Maven 项目框架:SSM 操作系统:windows发现问题平时我们用的是外部的tomcat,将项目直接部署到tomcat上,然后启动tomcat。 这次,项目中,用的maven内置tomcat插件,启动项目,然后用maven命令启动项目。...原创 2018-07-19 11:20:26 · 14169 阅读 · 3 评论 -
redis 分布式锁
前言上一篇写了砸金蛋。但是没有考虑高并发。。。举个例子,每个用户每天最大砸金蛋次数为100次,超过100次之后就不能再砸了。今日累计砸金蛋次数存在redis中,用户每次砸金蛋请求,都会去取redis中存的累计砸金蛋次数,判断是否超过100次。超过就抛异常,不能再砸金蛋了。在没有处理高并发的情况下,模拟同一用户,发起200次请求,发现用户砸了103次金蛋!!!预期结果是砸100次! 不...原创 2018-08-06 10:16:08 · 726 阅读 · 0 评论 -
JAVA 砸金蛋抽奖的简单实现
代码如下需求:用户每一次砸金蛋,抽中一等奖的概率为2% 二等奖10% 三等奖18% 四等奖70%。 累计砸第n次时必抽中x等奖以上的奖品。比如,累计砸第5次,则此次必中二等奖及以上的奖品。且配置的此次必中中奖概率不一样。有点绕。。。/** * 金蛋抽奖 * userId : 抽奖用户ID * consumeType : 抽奖消耗的物品 1:金币 2:次数 */ ...原创 2018-08-02 09:41:16 · 2982 阅读 · 0 评论 -
spring boot 项目部署到服务器 两种方式
Spring Boot 两种部署到服务器的方式jar包jar包方式启动,也就是使用spring boot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上,就ok。不需要外置tomcat 1.打成jar包2.将jar包放到任意目录,执行下面的命令$ nohup java -jar test.jar &amp;amp;amp;gt;temp.txt &amp;amp;amp;amp;//这种方法会把日志文件...原创 2018-08-08 13:05:46 · 204254 阅读 · 30 评论 -
Spring Boot + Security + Mybatis 简单权限控制(入门 + 记录篇)
Spring Boot Security 权限 这两天研究了一下权限管理框架。。 查阅资料的过程中,JAVA中常用的安全框架有Shiro和Spring Security。Shiro比Spring Security学习起来更加简单,功能够用。而这两天的学习中,就我自己的体会而言,学习Spring Security还是有一定难度的。虽然它的扩展性非常的好,我们可以重载它默认的类,重写方法...原创 2018-08-22 16:49:54 · 9150 阅读 · 5 评论 -
Java Md5 加密
Java 两种加密 此处仅记录,方便查阅 1.Spring 自带加密最常用的md5加密,但是有个隐患,不同的用户使用同样的密码加密出来得到的字符串都是相同的值。//导入包import org.springframework.util.DigestUtils;//对密码进行 md5 加密String md5Password = DigestUtils.md5Digest...转载 2018-08-23 10:35:22 · 554 阅读 · 0 评论 -
Java 快递物流查询 api对接
这里只是记录一下。第三方都会提供很详细的demo或者排专业人员进行联调。第三方物流接口对比快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据。目前常用的有快递鸟、快递100、聚合数据、阿里云物流等。快递鸟即时API可以查询3000次,3000以上接订阅接口,统一接口模式接入,常用快递均支持查询,还有订阅API、...原创 2018-08-24 09:44:41 · 12116 阅读 · 0 评论 -
spring boot mybatis-generator 使用tk.mybatis.mapper通用mapper自动生成代码
前言这次的项目,使用spring boot 多模块开发。其中,数据库集成了data Jpa 和 Mybatis。最先引入的data jpa,但是后面涉及到多表关联多条件查询的时候,就显得很麻烦。然后就把mybatis也引入了进来。这里重点记录一下如何使用通用mapper逆向生成代码。提高我们的工作效率。环境开发工具:IntelliJ IDEA 2018项目框架: 基于Spring B...原创 2018-10-30 14:23:16 · 13787 阅读 · 3 评论 -
8082端口占用 TIM搞事情
前言项目框架:Java ssm 编辑器:IDEA 访问端口:8082 项目启动却报错:端口已经被占用。解决1.按照之前遇到的情况,我先杀掉所有的java进程。 杀完重启,还是报端口被占用。2.关闭IDEA,杀掉IDEA进程 杀完重启,仍然报端口被占用。ps:之前java开发中,遇到端口被占用,这样就可以解决问题了。然而。。。这次却不行! 那就麻烦点,先找到端口是...原创 2018-07-17 11:28:48 · 8935 阅读 · 4 评论