自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(426)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringBoot 整合 RocketMQ 实现消息生产消费(RocketMQTemplate实现)

有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而RocketMQ是可以支持消息的顺序消费的。 RocketMQ在发送消息的时候,是将消息发送到不同的队列中,然后消费端从多个队列中读取消息进行消费,很明显,在这种全局模式下,是无法实现顺序消费的。 为了实现顺序消费,我们需要把有顺序的消息按照他的顺序,将他们发送到同一个队列中,这样消费端在消费的时候,就保证了其顺序。 但是顺序消费的性能肯定也相对差一些,因为只能使用一个队列。一、在pom.xml中添加依赖:...

2020-07-30 16:12:23 852

原创 PHP之MD5加密字节流再进行Base64编码

应用场景:待签名数据以UTF-8的格式转字节流,对字节流进行MD5算法得到的签名字节流,再经过Base64转换为字符串,即生成签名。<?php //php之生成13位时间戳 $arr = explode(' ',microtime()); $timestamp = $arr[1].(round($arr[0]*1000)); require ('Bytes.php'); ...

2019-08-27 13:43:59 850

原创 JAVA之MD5加密字节流再进行Base64编码

应用场景:待签名数据以UTF-8的格式转字节流,对字节流进行MD5算法得到的签名字节流,再经过Base64转换为字符串,即生成签名。import java.security.MessageDigest;/** * 需要引入的共同jar包 * apache-commons-codec-1.4.jar */import org.apache.commons.codec.binary....

2019-08-27 13:39:43 714

原创 linux之tail命令

//实时显示 日志文件info.log 最后100行的内容tail -f -n 100 info.log//打印 日志文件info.log 最后100行的内容tail -n 100 info.log == tail -100 info.log//查看 日志文件info.log 中带有指定关键词的日志信息tail -f info.log | grep 关键字 | grep 关键字//查看 日志文件info.log 前100行head -n 100 info.log//实时显示 日...

2021-02-23 15:29:03 19

原创 配置支付目录 - 【微信支付】JSAPI支付开发者文档

官方地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3一、设置支付目录支付授权目录说明:1、商户最后请求拉起微信支付收银台的页面地址我们称之为“支付目录”,例如:https://www.weixin.com/pay.php。2、商户实际的支付目录必须和在微信支付商户平台设置的一致,否则会报错“当前页面的URL未注册:”支付授权目录设置说明:登录微信支付商户平台(pay.weixin.qq.com)--&g

2021-01-03 09:56:08 252 1

原创 Python之京东商品秒杀

1 环境操作系统:WindowsPython版本:3.9.02 需求分析&前期准备2.0 需求分析目标是秒杀京东的订单,这里面有几个关键点,首先需要登录京东,其次你需要准备好订单,最后要在指定时间快速提交订单。登录京东,这里就要用到一个爬虫利器Selenium,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。另外对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。2.1 Selenium的安装Selenium

2020-12-23 17:17:19 803 3

转载 Java8 stream多字段排序

//对象集合List<类> list; //(类属性一)升序list.stream().sorted(Comparator.comparing(类::属性一));//(类属性一)降序【两种方法】//【方法1】(类属性一)升序,升序结果进行(类属性一)降序list.stream().sorted(Comparator.comparing(类::属性一).reversed());//【方法2】(类属性一)降序list.stream().sorted(Comparator.co.

2020-11-28 17:10:18 386

转载 Java8新特性:Stream介绍和总结

什么式Stream流(Stream)是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲的是数据,流讲的是计算注意:Stream自己不会存储元素 Stream不会改变源对象。相反,他会返回一个持有结果的新Stream Stream操作是延迟执行的。意味着他会等到需要结果的时候才执行Stream操作的三个步骤创建Stream 一个数据源(如:集合、数组),获取一个流 中间操作 一个中间操作链,对数据源的数据进行处理 终止操作(终端操作) 一个终止操作,执行中间操作链。

2020-11-28 16:38:00 36

转载 Java8新特性之Stream流的使用

Stream 是Java8中处理集合的关键抽象概念,它可以对集合进行非常复杂的查找、过滤、筛选等操作,在新版的JPA中,也已经加入了Stream。1、Stream的操作步骤Stream有如下三个操作步骤:一、创建Stream从一个数据源,如集合、数组、值、文件中获取流。//集合//这种数据源较为常用,通过stream()方法即可获取流对象:List<Person> list = new ArrayList<Person>(); Stream<Pers

2020-11-28 14:44:58 124

转载 RedisTemplate操作Redis

一、SpringDataRedis简介1、Redisredis是一款开源的Key-Value数据库,运行在内存中,由C语言编写。企业开发通常采用Redis来实现缓存。同类的产品还有memcache 、memcached 等。2、JedisJedis是Redis官方推出的一款面向Java的客户端,提供了很多接口供Java语言调用。可以在Redis官网下载,当然还有一些开源爱好者提供的客户端,如Jredis、SRP等等,推荐使用Jedis。3、Spring Data RedisSprin

2020-11-28 10:57:49 47

原创 SpringBoot之RedisTemplate常用方法总结

Redis常用的数据类型:String、Hash、List、Set、zSet、Sorted set1、String类型//判断是否有key所对应的值,有则返回true,没有则返回falseredisTemplate.hasKey(key)//有则取出key值所对应的值redisTemplate.opsForValue().get(key)//删除单个key值redisTemplate.delete(key)//批量删除keyredisTemplate.delete(keys)

2020-11-28 10:18:53 84

原创 支付宝H5支付同步通知自定义参数使用和注意事项

应用场景:支付宝H5支付,支付成功之后,特殊订单需要进行特殊展示。alipay.trade.wap.pay(手机网站支付接口2.0)https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay1、请求参数,增加参数:passback_params。官方说明:2、鉴于新版本支付宝H5支付,支付完成之后页面无响应问题,我们依然要使用同步通知。但是passback_params参数只存在异步返回信息中。解决方案:我们可以把这个参数拼接到同步

2020-11-12 16:59:24 278

原创 支付宝H5支付,支付页面无响应事件以及解决方案。

alipay.trade.wap.pay(手机网站支付接口2.0)https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay问题:使用支付宝APP付款以后,点击关闭或已完成付款,页面无响应。解决方案:公共请求参数,增加同步通知URL:return_url。自动执行跳转操作。同步通知:仅做跳转操作,单次通知。异步通知:处理业务逻辑,多次通知。...

2020-11-12 16:02:05 1361

原创 Java引用微信支付的p12证书文件运行报错解决方案

应用场景:对接微信支付的退款功能apiclient_cert.p12文件,所在路径如下:apiclient_cert.p12文件,引用如下:KeyStore keyStore = KeyStore.getInstance("PKCS12");try (InputStream is = this.getClass().getClassLoader().getResourceAsStream("apiclient_cert.p12")) { keyStore.load(is, wxPa

2020-11-07 17:12:13 326 1

原创 Mysql正则匹配替代Like模糊查询

Like模糊查询:SELECT * FROM TABLE WHERE username NOT LIKE '%测试%' AND username NOT LIKE '%ceshi%' AND username NOT LIKE '%tester%';正则匹配:SELECT * FROM TABLE WHERE username NOT REGEXP '测试|ceshi|tester';

2020-09-23 11:58:45 94

原创 Java测试类之SpringBoot测试类和普通测试类

SpringBoot测试类:import com.feignclient.OrderClient;import com.service.IMemberService;import org.apache.dubbo.config.annotation.Reference;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest

2020-09-22 11:50:04 89

转载 分布式锁的几种实现方案

一、业务场景 同一个jvm里多个线程操作同一个有状态的变量,可以通过JVM内的锁保证线程安全。 如果是多个JVM操作同一个有状态的变量,如何保证线程安全呢? 这时候就需要分布式锁来发挥它的作用了二、特点 分布式系统往往业务流量比较大、并发较高,对分布式锁的高可用和高性能有较高的要求。一般分布式锁的方案需要满足如下要求: 有高可用的获取锁和释放锁功能 获取锁和释放锁的性能要好 这把锁要是一把可重入锁(避免死锁) ...

2020-09-22 11:16:53 92

原创 Mybatis注解批量更新之多参数多条件

/** * 批量修改状态 * * UPDATE user_order SET status = CASE WHEN order_no = ? AND user_id = ? THEN ? WHEN order_no = ? AND user_id = ? THEN ? END WHERE ( order_no = ? AND user_id = ?) or (order_no = ? AND user_id = ? ) * @param list ...

2020-09-19 14:22:42 303

转载 Mybatis中#{}与${}的使用

含义:#{}:为占位符${}:为拼接符区别:  用法  #{}:为参数占位符?,即sql预编译 ${}为字符串替换, 即字符串拼接  执行流程  #{}:动态解析 --> 预编译 --> 运行   ${}: 动态解析 --> 编译 -->运行  变量替换  #{}:变量替换是在DBMS(数据库管理系统)中,会对对应的变量自动加上''   ${}:变量替换实在DBMS外,不会对对应的变量加上''  sql注入  #{...

2020-09-19 13:54:08 43

原创 Springboot全局日期格式化

package com.common.config;import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpubli.

2020-09-19 11:19:38 48

原创 Java开发者常用相关工具

谷歌翻译https://translate.google.cn/Unix时间戳(Unix timestamp)转换工具http://tool.chinaz.com/Tools/unixtime.aspxJSON在线解析及格式化验证https://www.json.cn/php在线反序列化工具https://1024tools.com/unserializeUUID在线生成http://www.kjson.com/encrypt/uuid/UUID在线生成http://www.uuid.

2020-09-19 10:48:42 85

原创 Json字符串转换成List对象集合

import com.alibaba.fastjson.JSON;import org.junit.Test;import java.util.List;public class jsonTest { @Test public void test0() { String jsonString = "[{'id':1,'num':1},{'id':2,'num':2}]"; //将json转为list对象 // List<T&g.

2020-09-17 09:27:04 407

原创 JAVA之微信根据code获取openId

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.junit.Test;public class myTest { @Test public void userInfoTest() { String appId = ""; String secret = ""; String code = ""; Str.

2020-09-02 17:17:45 578

原创 JAVA之JWT工具类

import com.auth0.jwt.JWT;import com.auth0.jwt.JWTVerifier;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.exceptions.JWTCreationException;import com.auth0.jwt.exceptions.JWTVerificationException;import com.auth0.jwt.interfaces.Claim;i.

2020-09-02 16:57:46 73

原创 JAVA时间工具类之DateUtil

import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.S.

2020-09-02 16:54:40 110

原创 JAVA请求工具类之HttpClientUtil

import org.apache.http.HttpEntity;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.ResponseHandler;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.HttpGet;import org.apache.h.

2020-09-02 16:51:41 97

转载 JAVA递归-根据id获取所有相关联的id

import org.junit.Test;import java.util.ArrayList;import java.util.List;public class myTest { @Test public void t1() { Menu m = new Menu(); m.setId(1); m.setpId(0); Menu m2 = new Menu(); m2.setId(2); .

2020-09-02 16:37:24 223

转载 JAVA之字符串,Json,Map互相转换

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); .

2020-09-02 15:57:39 68

转载 JAVA之数组和集合的相互转换

import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class Main { public static void main(String[] args) { int[] data = {4, 5, 3, 6, 2, 5, 1}; // int[] 转 List<Integer> List<Intege.

2020-09-02 15:49:49 79

转载 PHP之获取今日、昨日、上周、本月、上月的起始时间戳和结束时间戳的方法

//php获取今日开始时间戳和结束时间戳$beginToday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));$endToday = mktime(0, 0, 0, date('m'), date('d')+1, date('Y'))-1;//php获取昨日起始时间戳和结束时间戳$beginYesterday = mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));$endYesterday.

2020-05-28 08:52:18 125

转载 redis高并发之秒杀活动解决方案

我们模拟10w个人一瞬间涌入页面进行秒杀,能够秒杀成功的只有10人。我们把先进来的用户放入redis队列中,当队列中的用户达到10人时,后面的用户跳转到秒杀结束页面。这里用随机数来表示不同的用户。header("Content-type:text/html;charset=utf-8");$redis = new Redis();$redis->connect("localhost", "6379");$redis->select(1);$redis_name = "miaosha

2020-05-20 17:04:58 809

原创 php+redis实现消息队列功能

php+redis消息队列是php+mysql性能不足时的一个中间间处理方案。应用场景:用于服务器瞬间请求大,数据库压力大的情况。如并发量大导致的超卖、并发量大导致的数据重复情况。优点:1、保证数据的可用性和准确性。2、把服务器瞬间的请求处理转换成异步处理,缓解服务器的压力。3、实现数据单条按顺序排列获取。流程:1、php接受请求和数据2、php把数据写入redis队列中(入队)【函数rpush】3、php读取队列数据写入mysql(出队)【函数lpop】4、查看队列中的.

2020-05-15 15:32:20 276

原创 mysql查询每个数字出现的次数[矩阵]。

查询矩阵a1,a2,a3中每个数字分别出现的次数。SELECT T.num AS 数字,COUNT(1) AS 出现的次数 FROM ((SELECT a1 AS num FROM bbc_test ORDER BY a1 ASC)UNION ALL(SELECT a2 AS num FROM bbc_test ORDER BY a2 ASC)UNION ALL(SELECT a3 AS num FROM bbc_test ORDER BY a3 ASC)) T GROUP BY T.nu..

2020-05-12 16:37:11 240

原创 mysql查询某个字段去重之后的条数和总条数

SELECT COUNT(1) AS 某个字段去重后的条数,SUM(num) AS 总条数 FROM (SELECT COUNT(1) AS num FROM 表名 GROUP BY 字段名) T;

2020-05-12 16:31:08 2024

原创 PHP批量更新数据表数据的函数,拼接成SQL更新语句

private function doBatchModify($data = [], $table = '') { $tableModel = M("{$table}"); if (count($data) == 0 || empty($table)) exit('参数缺少'); //获取所有的id $data_ke...

2020-04-23 14:50:40 192

原创 PHP之curl实现下载远程图片保存到本地的方法

//保存文件方法function saveAsImage($url, $file, $path){ $filename = pathinfo($url, PATHINFO_BASENAME); $resource = fopen($path . $filename, 'a'); fwrite($resource, $file); fclose($resourc...

2020-04-21 08:56:47 440

原创 MySQL查询去重,保留某个字段最大值的记录

我们的目标:根据子级的最新数据来查询5条父级数据。1、首先:查询出所有符合的相关数据。SELECT Q.id , Q.pid FROM Q LEFT JOIN P ON P.id=Q.pid WHERE M.XXOO=... AND N.XXOO...;2、其次:自链接查询。#SELECT A.* FROM A LEFT JOIN B ON A.XXOO = B.XXOO AN...

2020-03-15 15:57:00 1126

原创 PHP版本7.0+及其以上json_encode函数问题

<?php$data = [ 'title'=>'狼道', 'num' => '1', 'price' => 56.98,];echo json_encode(self::fix_number_precision($data), JSON_UNESCAPED_UNICODE);exit;//输出:{"title":"狼道","num":"1","price...

2019-09-05 13:15:08 472

原创 Yii2.0+Console定时任务的创建与yii脚手架的使用

1、Console创建定时任务 <?php namespace console\controllers; use \yii\console\Controller; class TestController extends Controller{ public function actionIndex(){ echo ...

2019-09-04 16:11:20 202

原创 Jquery消息提示插件toastr的使用

toastr是一个基于Jquery简单、漂亮的消息提示插件。YII2.0+默认自带Jquery消息提示插件toastr单独引用模式:当前view视图中,引用如下:<?=Html::jsFile('@web/js/plugins/toastr/toastr.min.js')?><?=Html::cssFile('@web/css/plugins/toastr/toas...

2019-09-02 14:33:31 424

apache-commons-codec-1.4.jar和sun.misc.BASE64Encoder.jar

apache-commons-codec-1.4.jar和sun.misc.BASE64Encoder.jar和sun.misc.BASE64Decoder.jar

2019-08-27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除