自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 09. 微信公众号发送模板消息

1. 官方文档要认证后的服务号才可以申请模板消息的使用权限,否则只能使用测试号设置所属行业接口要注意,设置成功之后要一个月之后才能再次设置测试号设置模板位置模板格式测试模板的模板ID仅用于测试,不能用来给正式帐号发送模板消息为方便测试,测试模板可任意指定内容,但实际上正式帐号的模板消息,只能从模板库中获得需为正式帐号申请新增符合要求的模板,需使用正式号登录公众平台,按指引申请模板内容可设置参数(模板标题不可),供接口调用时使用,参数需以{{开头,以.DATA}}结

2021-08-25 14:57:59 655

原创 08. 微信公众号生成带参数二维码

1.官网为了满足用户聚到推广分析、用户账号绑定等场景需要,可以生成不同场景值的二维码目前有两种类型二维码临时二维码有过期时间,最长可以设置为在二维码生成后的30天(即2592000秒)后过期数量不限制临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景永久二维码无过期时间数量较少(目前为最多10万个)主要用于适用于帐号绑定、用户来源统计等场景创建接口https://api.weixin.qq.com/cgi-bin/qrcode/creat

2021-08-12 15:15:20 2596

原创 07. 微信公众号客服信息

1. 官方文档因为微信服务器发送消息时,5秒不回复则会重试,倘若我们的服务器处理数据或者网络的原因没有及时回复,将会造成不好的结果可以选择给予微信服务器回复,再异步调客服接口给予用户回复2. 实现支持发送文本消息、图片消息、语音消息、视频消息、音乐消息、图文消息、菜单消息、卡券等消息发送的是 Json 数据文本消息示例{ "touser":"OPENID", "msgtype":"text", "text": { "conten

2021-08-10 09:22:13 438

原创 06. 微信公众号创建、删除菜单

1. 创建菜单官网接口// post 请求https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN请求体示例[ { "type": "view", "name": "百度", "url": "http://www.baidu.com" }, { "name": "笔记", "sub_button

2021-08-10 09:21:42 467

原创 05. 微信公众号消息加解密

1. 说明 官方文档只有被动回复用户的消息时,才需要进行消息加解密消息加解密的具体修改新增消息体签名验证,用于公众平台和公众账号验证消息体的正确性针对推送给微信公众账号的普通消息和事件消息,以及推送给设备公众账号的设备消息进行加密公众账号对密文消息的回复也要求加密参数说明会多携带两个参数// 加密类型@RequestParam String encrypt_type// 消息体签名:token、timestamp、nonce及密文经过 AES 加密后的签名字符串@

2021-08-10 09:19:32 2127

原创 04.微信公众号获取access_token、消息排重

1. 获取 access_token 官方文档说明access_token有效期目前为2小时,且获取access_token接口每天限制2000次。因此需要保存,选择保存到 redisaccess_token重复获取将导致上次获取的access_token失效,但是公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡。因此需要用分布式锁来限制刷新,选择 redisson 实现代码实现@Overridepublic String getAcce

2021-08-10 09:18:53 417

原创 03. 微信公众号消息接收、事件推送与响应处理

1. 消息接收 官方文档当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上 --> 接口配置信息的URL即开发时,接收信息的接口的访问路径与微信接入的URL一致,但为 POST 请求请求参数依然会携带请求参数signature、timestamp、nonce用于去验证是否是微信服务器发送的消息微信发送的普通消息有文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置信息、链接信息,会以XML的格式在请求体中发送过来,可

2021-08-10 09:17:55 7387 2

原创 02. 微信公众号验证接入

1. 公众号 微信公众号开发文档区别选择如果想简单的发送消息,达到宣传效果,建议可选择订阅号;如果想用公众号获得更多的功能,例如开通微信支付,建议可以选择服务号;如果想用来管理内部企业员工、团队,对内使用,可申请企业号;订阅号可通过微信认证资质审核通过后有一次升级为服务号的入口,升级成功后类型不可再变;服务号不可变更成订阅号。测试号专门为开发人员准备的一种仅用于测试的公众号,部分高级功能不支持,如微信支付、卡券等测试号申请链接2. 开发微信测试号测试号

2021-08-10 09:16:17 278

原创 01. 环境准备-内网穿透

1. 使用 飞鸽穿透飞鸽官网2. 配置下载对应电脑的客户端 下载注册登录后 --> 开通隧道可以选择免费使用配置域名前缀、备注、本地IP(随意填写)如果不可以开通,第二天在尝试。解压下载的客户端,打开.vbs文件隧道管理 --> + --> 复制启动命令到客户端 --> 确定 --> 启动完成 --> 使用 访问地址 访问了...

2021-08-09 17:40:30 140

原创 16. 拦截器示例

1.拦截器import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.stereotype.Component;import org.springframework.web.servlet.Handler

2021-08-09 17:34:44 79

原创 15. 过滤器 Filter 示例

1.过滤器import com.alibaba.fastjson.JSON;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Component;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.util.Enumeration;i

2021-08-09 17:26:41 184

原创 14. 集成`JackJson`

1. 依赖Spring Boot 默认集成JackJson,无需依赖SSM<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.1</version></dependency>2. 简单使用

2021-08-09 17:22:42 271

原创 13.SpringBoot启动时,方法自动执行

1. 说明执行顺序实现ServletContextListener---contextInitialized实现 ServletContextAware静态代码块@PostConstruct实现ApplicationRunner实现CommandLineRunner说明Spring 中很特殊的类,Spring启动时可自动运行。xxxxAware BeanDefinitionRegistryPostProcessor// 在spring容

2021-08-09 17:21:38 112

原创 12. 获取`resources`下的文件

org.springframework.core.io.ClassPathResourceimport org.springframework.core.io.ClassPathResource;public void loadFile(String path, List<File> fileList) { try { // 获取资源文件对象 ClassPathResource pathResource = new ClassPathResour..

2021-08-09 17:20:55 154

原创 10. 集成`dom4j`

1. 核心依赖依赖<dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version></dependency> 2. 使用常用API// 解析器: org.dom4j.io.SAXReader;SAXReader reader =

2021-08-09 17:20:16 116

原创 09. Spring Boot Controller 接受参数的几种常用方式

1. 接受参数的几种常用方式请求路径参数@PathVariable获取路径参数。即utl/{id}这种形式// 访问路径:http://localhost:8080/hello/5@RequestMapping(value = "hello/{id}", method = RequestMethod.GET)public JsonResult hello(@PathVariable Integer id) { return JsonResult.success(null);}

2021-08-09 17:18:58 139

原创 08. SpringBoot 集成Redisson

1. redis 单例配置配置文件application.ymlspring: # redis redis: # Redis数据库索引(默认为0) database: 0 # Redis服务器地址 host: 127.0.0.1 # Redis服务器连接端口 port: 6379 # Redis服务器连接密码(默认为空) password: password # 连接超时时间(毫秒) timeout: 50

2021-08-09 17:14:30 265

原创 07. redis 锁看门狗机制实现

1. 说明为避免设置的过期时间不足以完成业务逻辑,而选择开线程自动延长 key 的有效期使用 ApiAtomicBoolean 原子性操作// 比较相同则设置 booleanatomicBoolean.compareAndSet()// 如果 key 不存在 则设置valueOperations.setIfAbsent()// 设置 key 过期时间redisTemplate.expire() 2. 实现WatchDogLock.javaimport cn.h

2021-08-09 17:11:23 357

原创 node.js使用 cnpm 代替 npm

在国内使用npm在安装一些模块时,由于一些原因导致网络不通畅,经常安装失败,所以可以使用淘宝的cnpm来代替npmnpm install -g cnpm --registry=https://registry.npm.taobao.orgcnpm -v查看cnpm是否安装成功cnpm install拉取依赖cnpm start开启...

2020-10-10 23:58:10 1487 1

原创 08.`spring boot`邮件服务

1. 登录邮箱获取授权开启POP3/SMTP服务获取授权码,要记好,要用到2. 依赖依赖<!-- 邮箱服务 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency> 说明

2020-09-06 01:25:41 214

原创 07.`RocketMq`的部署及简单使用

1. docker-compose部署rockermq编辑docker-compose.ymlvim docker-compose.ymldocker-compose.yml内容version: "3.7"services: rocketmq-server: image: foxiswho/rocketmq:server container_name: rocketmq-server ports: - 9876:9876 volumes

2020-09-06 01:25:22 150

原创 06.`getaway`-网关-`spring-cloud-getaway`

1. 依赖依赖<dependencies> <!-- 网关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency></dependencie

2020-09-05 08:10:11 996

原创 05.`dubbo`的简单使用

1. 官方文档dubbo 官方文档dubbo github 文档2. 使用dubbo依赖对于提供者,只需要依赖spring-cloud-starter-dubbo即可<!-- dubbo --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-dubbo</artifactId>&l

2020-09-05 08:09:57 112

原创 04. `sentinel`的部署及简单使用

spring-cloud-alibaba-github1. docker部署sentinel将jdk安装包、sentinel的jar包上传到服务器sentinel-dashboard 官方下载地址编辑dockerfilevim dockerfiledockerfile的内容# 基础镜像FROM ubuntu:18.04# 将当前文件夹下的 jdk-8u221-linux-x64.tar.gz 复制并解压到 /opt/ 下ADD ./jdk-8u221-linux-x6

2020-09-05 08:07:14 1535 2

原创 03.`feign`→服务间的通信

1. 依赖spring-cloud-starter-openfeign依赖<dependencies> <!-- feign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> &

2020-09-05 08:07:00 87

原创 02.`nacos`注册中心

1. 部署到远程服务器官方文档Nacos Docker 快速开始spring-cloud-alibaba-github部署Clone 项目# 克隆项目git clone https://github.com/nacos-group/nacos-docker.git进入nacos-docker/# 进入 nacos-docker/ 文件夹cd nacos-docker/单机模式 Derby# 后台运行启动 nacos Derby单机模式docker-com

2020-09-05 08:06:45 93

原创 01.`spring cloud alibaba`依赖版本选择

1. 官方文档2. 版本说明组件版本关系毕业版本依赖关系3. 依赖管理Spring Cloud Alibaba BOM包含了它所使用的所有依赖的版本。RELEASE 版本Spring Cloud Hoxton在 dependencyManagement 中添加如下内容<dependencyManagement> <dependency> <groupId>com.alibaba.cloud</gro

2020-09-05 08:06:19 572

原创 06.`spring boot`集成`redis`

SpringBoot集成redis

2020-09-05 08:05:25 323

原创 05.`Ubuntu18.04`下`docker-compose`实现`redis`集群模式

1. 部署三主三从编辑redis.conf文件,并复制5份创建 6 个文件夹mkdir -p redis-cluster-mode/redis/cd redis-cluster-mode/redis/mkdir -p master1/conf/ master2/ master3/ slave1/ slave2/ slave3/获取redis.conf配置文件cd master1/conf/wget http://download.redis.io/redis-stabl

2020-09-05 08:05:11 110

原创 04.`Ubuntu18.04`下`docker-compose`实现`redis`哨兵模式

1. 编写docker-compose.ymlversion: '3.7'services: redis-master: image: redis ports: - 6379:6379 volumes: - ./master/conf/redis.conf:/var/local/redis/redis.conf # 容器中默认将数据就是放在 /datas目录下 - ./master/datas/:/datas/ com

2020-09-05 08:04:48 71

原创 03.`Ubuntu18.04`下`redis`主从备份(灾备)

1. 安装从库安装 redis2. 配置从库配置slaveof <masterip> <masterport>、masterauth <master-password>可以在命令模式中命令输入通过/关键字快速查找重启redis查看端口使用情况:netstat -lntup杀掉redis进程:kill {redis进程的PID}重启redis:redis-server查看是否修改成功:netstat -lntup

2020-09-05 08:04:14 154

原创 02.`redis`的常用数据类型以及操作

1. 数据类型redis官网数据类型redis 常用的数据类型是五种,但是它支持的数据类型不止五种,如图所示常用的数据类型常用的数据类型说明string字符串类型,字符串的值最大长度为 512 Mhash散列类型,对应Java的Maplist列表类型,对应Java的List,列表的最大长度为2^32-1个元素,大约40亿set集合类型zset有序集合类型(根据设置的 score 进行排序)2. 常用数据类型的操作

2020-09-04 19:54:31 69

原创 01.`Ubuntu18.04`下安装`Redis`以及设置远程连接

redis官网1. 安装更新源:apt update安装:apt install redis-server -y查看是否已启动:redis-cli2. 配置远程访问redis-server的配置文件默认在/etc/redis/下# 进入cd /etc/redis/# 查看ls -l编辑redis.conf文件:vim redis.conf将bind 127.0.0.1 ::1修改为bind 0.0.0.0(第60行左右)可以在命令输入那里用

2020-09-04 19:54:04 158

原创 08.`spring boot`集成`swagger`

1. 核心依赖依赖<!-- swagger --><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <grou

2020-09-04 19:52:52 59

原创 07.`logback`日志

1. 核心依赖spring boot已经集成了logback,不用导依赖,只要导入了spring-boot-starter即可,可以排除掉log4j<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <e

2020-09-04 19:52:28 93

原创 06.`spring boot`集成`mybatis` 或 `mybatis-plus`

1. 说明spring boot只能集成两者中的一个,mybatis-plus是对mybatis的进一步封装,省去了书写mapper.xml。mybatis-plus的封装只支持单表操作,对于多表依然可以通过xml的方式来实现2. 集成mybatis依赖<dependencies> <!-- mybatis-starter --> <dependency> <groupId>org.mybatis.spring

2020-09-04 19:51:41 76

原创 04.`validator`数据校验→`jsr303`

1. 依赖依赖<dependencies> <!-- validator 数据校验 --> <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> </dependency></dependenci

2020-09-04 19:49:37 75

原创 05.`SpringBoot` 集成`druid`连接池

1. 核心依赖依赖<dependencies> <!-- mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- druid-starter -->

2020-09-04 19:49:24 110

原创 03.`Spring Boot` 的配置文件

1. 介绍官方配置文档创建工程后默认在resources下有一个application.properties文件推荐将该文件改为.yml文件名字默认为application,不建议修改Spring Boot通常使用两种格式的配置文件application.propertiesserver.port=8080server.servlet.context-path=/api/v1application.ymlserver: port: 8080 servl

2020-09-04 19:47:07 99

原创 02.`yml`作为配置文件

1. 介绍yml 使用空白,缩进,分行来组织数据,从而使得表示更加简洁易读,常作为配置文件, 比json更加简洁。数据类型字面量:不可再分的值(基本类型)对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)对象和数组可以任意嵌套组复杂的数据结构2. 语法与基本规则基本语法key: valuekey:后面要有一个空格基本语法规则

2020-09-04 19:46:36 170

空空如也

空空如也

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

TA关注的人

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