微信登录和支付api
一、微信登录微信登录主要包含两种场景:
小程序登录
PC(公众号)扫码登录
1. 小程序登录思路: 使用 weixin-java sdk实现小程序登录
12345<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <version>4.6.0</version></dependency>
使用此sdk需要先进行配置
yml文件:
1234wx: miniapp: appId: # 小程序微信公众平台appId secret: # 小程序微信公众平台api秘钥
配置类:
1234567891011import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.s ...
git使用
一、git介绍1. 发展过程Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的分布式版本控制器,但BitMover公司看中Linux开源精神,免费授权给Linux社区使用,在2002年时,Linux开始使用BitKeeper分布式版本控制系统管理源代码,但好景不长,有一天Linux社区成员Andrew(samba(局域网共享文件c/s程序)的作者)试图破解BitKeeper共享给所有人使用,被BitMover公司发现并收回了免费使用的版权,随后Linus就用了两周时间开发出了git(两周时间包括测试),也就是目前为止最好用的分布式版本控制系统。
大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。
2. 集中式与分布式的区别除了gi ...
如何使用ChatGPT
一、chatgpt介绍ChatGPT是一种基于人工智能的自然语言处理模型,由OpenAI开发。它是GPT系列模型的一部分,GPT代表“生成式预训练模型”(Generative Pre-trained Transformer)。ChatGPT专注于对话生成任务,即模拟人类对话的过程。
那么如何使用chatgpt的重点就是怎么向chatgpt提问
二、如何向chatgpt提问例如:我现在有一个任务 学习 INSERT INTO SELECT
可以看到提问后,chatgpt将 insert into select 的语法都介绍了出来,并给出了一个例子
要练习它这个例子,需要有例子中的表,我们让它编写创建例子中表的sql
让它帮忙添加一些数据
在练习完基本的 insert into select语法后,可以进行更复杂的练习
当你从外界获取一些信息,也可以对chatgpt进行提问
再进行了这些练习后,询问chatgpt是否有更复杂的方法
让chatgpt 做出示范
之后自己对这些sql进行练习,通过对 gpt 提问,学习 insert into select 的任务大致就这样 ...
SQL
一、INSERT INTO SELECT1.什么是 INSERT INTO SELECT ?INSERT INTO SELECT 允许我们从一个表中选择数据,并将其插入到另一个表中。这个功能非常适用于需要从一个表中复制数据到另一个表的情况,或者将查询结果存储到新的表中。
2.INSERT INTO SELECT的基本语法格式1234INSERT INTO 目标表 (列1, 列2, 列3, ...)SELECT 列1, 列2, 列3, ...FROM 源表WHERE 条件;
3.INSERT INTO SELECT的基本使用例如:我有两张表,分别是 employees 和 new_hires表,employees 表用于存储雇员的基本信息,new_hires 表是一个暂存表,用于存储最近招聘的新员工信息。
employees 表结构:
new_hires 表结构与 employess 表结构相同
现在我想要将 2020 年之后的员工信息添加到 new_hires表中
我们可以使用 WHERE 条件查询
1234INSERT INTO new_hires(employee_id, fi ...
MongoDB的使用
一、关于MongoDB1、MongoDB是什么?MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库
2、为什么要用MongoDB
MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。
1234{ username: "123", password: "123"}
使用这样的数据模型,使得MongoDB能在生产环境中提供高读写的能力,吞吐量较于mysql等SQL数据库大大增强。
易伸缩,自动故障转移。
易伸缩指的是提供了分片能力,能对数据集进行分片,数据的存储压力分摊给多台服务器。自动故障转移是副本集的概念,MongoDB能检测主节点是否存活,当失活时能自动提升从节点为主节点,达到故障转移。
数据模型因为是面向对象的,
所以可以表示丰富的、有层级的数据结构,比如博客系统中能把“评论”直接怼到“文章“的文档中,而不必像myqsl一 ...
Java使用MinIO
Java使用MinIoMinIo介绍Minio 是个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据。
例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
官网地址:minio
何为对象存储?我们来看下阿里云 OSS(Object Storage Service) 的介绍
对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
对于中小型企业,如果不选择存储上云,那么 Minio 是个不错的选择,麻雀虽小,五脏俱全。当然 Minio 除了直接作为对象存储使用,还可以作为云上对象存储服务的网关层,无缝对接到 Amazon S3、MicroSoft Azure。
下载MinIO既然知道了Minio是做什么的,就来看一下如何下载Minio
Minio官方 ...
Java 使用thumbnailator进行图片处理
简介Thumbnailator是一个开源的Java项目,它提供了非常简单的API来对图片进行缩放、旋转以及加水印的处理。
有多简单呢?简单到一行代码就可以完成图片处理。形式如下:
1234Thumbnails.of(new File("path/io/directory").listFiles()) .size(640,480) .outputFormat("jpg") .toFiles(Rename.PREFIX_DOT_THUMBNAIL);
核心APIThumbnailsThumbnails是使用 Thumbnailator 创建缩略图的主入口。
它提供了一组初始化Thumbnails.Builder的接口。
先看下这组接口的声明:
123456789101112// 可变长度参数列表public static Builder<File> of(String... files) {...}public static Builder<File> of(File... files) { ...
权限管理
关于权限在一个系统中有很多功能例如:查看用户信息、修改用户信息、删除用户信息,而其中有些功能并不适宜让所有人都能够访问,例如修改用户信息和删除用户信息,这些功能需要被合理的使用,只能由一些人使用。
那么怎么识别谁能够使用这些功能,就是给每个人加上一个标识也就是角色
如果你是管理员,就可以进行修改和删除的操作
如果你是普通用户,就只能进行查看操作
有了对权限的认知,下面会讲解在数据库中如何实现权限
数据库表的建立用户表用户表就是存放用户的各种信息
大概为:
id:作为方便查找用户信息的一种标识
name:名字
username:名字可能会与其他人重复,我们需要username来确认是否为要找的人
password:其他人不能操作自己的空间,需要登录判断是否为本人
phone:手机号 也是作为是否为本人的标识
gender:性别
enabled:是否为启用 如果进行了敏感操作,封禁账号
last_login_time:上一次登录时间
角色表我们首先思考角色需要什么,首先是名字用来区分,之后为备注对于角色的说明
字段:
id:方便查找的标识
name:角色的名称
remark ...
微信登录和支付的实现
微信登录微信PC扫码登录准备工作网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者账号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。
因为这个开放平台注册账号需要钱,所以我们申请一个微信公众平台接口测试账号网站
接口配置信息接口配置信息的url需要是一个能被外网访问的域名,本地链接是不可以的,如果没有域名可以用cpolar内网穿透
此url我们需要创建一个接口用来让微信校验是否可用
1234567891011@RequestMapping("/wxCheck")public String wxSignatureCheck( @RequestParam(value = "signature") String signature, @RequestParam(value = "timestamp") String timestamp, ...
Spring Cloud
微服务远程调用提供者和消费者
服务提供者:一次业务中,被其他微服务调用的服务。(提供接口给其他微服务)
服务消费者:一次业务中,调用其他微服务的服务。(调用其他微服务提供的接口)
提供者与消费者是相对的
一个服务可以同时是服务提供者和服务消费者
Eureka注册中心Eureka的作用
注册服务信息
拉去服务 user-serice的信息
负载均衡
远程调用
消费者该如何获取服务提供者具体信息?
服务提供者启动时向eureka注册自己的信息
eureka保存这些信息
消费者根据服务名称向eureka拉去提供者信息
如果有多个服务提供者,消费者该如何选择?
服务消费者利用负载均衡算法,从服务列表中挑选一个
消费者如何感知服务提供者健康状态?
服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态
eureka会更新记录服务列表信息,心跳不正常会被剔除
消费者就可以拉取到最新的信息
Eureka架构在Eureka架构中微服务角色有两类:
EurekaServer:服务端,注册中心
记录服务信息
心跳监控
EurekaClient:客户端
Prov ...
