Java-新特性
Java-新特性
[toc]
一、函数式接口函数式接口:只有一个抽象方法的接口,可以使用@FunctionalInterface注解修饰。
1.1、Predicate 判断12345678910111213141516171819202122public static void main(String[] args) { // 数据源 List<Integer> list1 = Arrays.asList(3,5,1,8,4,4); // 判断的规则 Predicate<Integer> con = new Predicate<Integer>() { @Override public boolean test(Integer integer) { // 元素值大于5时,符合规则 return integer > 5; } }; // 判断每个元素是否符合大于5的规则 Li ...
Maven 笔记2
Maven-笔记2
[toc]
一、Maven 简介Maven (妹文)可以翻译成“专家”。是 Apache 的一个开源项目,
用于Java平台下的**项目“构建”、依赖管理、项目信息管理**。
1.1、“项目构建” 的概念编译、运行单元测试、生成文档、打包、部署。这一整套流程就是 **构建(build)**。
1.2、“项目构建” 的工具常见的项目构建工具:
Ant:最早的构建工具,基于IDE。
Maven:Java 编写,通过 项目对象模型 管理项目,第一个支持从网络下载的概念,XML 作为配置文件。
Gradle:安卓的管理工具,采用 DSL格式 作为配置文件格式。
1.3、Maven 的四大特性1.3.1、依赖管理Maven 用于管理 jar 包。
一个 jar 包的依赖可以通过 groupId、artifactId、version 组成的 坐标(coordination)来标识。
一个 Maven 项目,本身必须具有 “gav”坐标,打包方式可以是 jar 包,也可以是 war 包。
示例:
123456789101112131415<!--格式: ...
MyDB-手写简易版数据库
MyDB-开源项目-笔记
[toc]
零、资料
MyDB-源码地址
MyDB-教程地址
一、MyDB 概述
一起写个数据库 —— 0. 项目结构和一些不得不说的话
MYDB 是一个 Java 实现的简单的数据库,部分原理参照自 MySQL、PostgreSQL 和 SQLite。实现了以下功能:
数据的可靠性和数据恢复
两段锁协议(2PL)实现可串行化调度
MVCC
两种事务隔离级别(读提交和可重复读)
死锁处理
简单的表和字段管理
简陋的 SQL 解析(因为懒得写词法分析和自动机,就弄得比较简陋)
基于 socket 的 server 和 client
1.1、整体结构
前端:读取输入,发给后端执行。
后端:分析、执行。
前后端的交互:socket
五个模块:
Transaction Manager(TM) :通过 XID 文件维护事务状态,提供查询某个事务状态的接口。
Data Manager(DM):分页管理 DB 文件和日志文件,并进行缓存,抽取 DataItem 供上层调用,提供缓存。
Version Manager(VM):基于两段锁协议 ...
Java 定时任务-笔记
Java 定时任务-笔记
[toc]
一、线程123456789101112131415161718192021public class demo1 { public static void main(String[] args) throws InterruptedException { // 延迟 5 秒后,每隔1秒打印 hello world! final long interval = 3000; Runnable runnable = new Runnable(){ @Override public void run() { System.out.println("hello world!"); } }; Thread.sleep(5000); while(true){ ...
支付宝 - 支付接口沙箱接入
支付宝 - 支付接口沙箱接入
[toc]
零、资料
内网穿透-调试支付通知的API
Springboot集成支付宝沙箱支付(完整版)
Springboot支付宝沙箱支付—完整详细步骤
接入准备 - 支付宝文档中心 (alipay.com)
一、通用的环境搭建NatAPP 实现内网穿透
(1)进入NatAPP 官网,实名注册,购买免费线路(最多2条免费),把本地线路的端口改为项目的端口8080,记录下authToken。
(2)下载内网穿透工具:NATAPP-内网穿透 基于ngrok的国内高速内网映射工具
(3)在下载好的软件的start.bat内,末尾加上刚才复制的authToken
(4)双击运行start.bat文件,启动内网穿透,记录下Fordwarding这一行的URL用于配置支付宝的回调地址notify_url。
1natapp.exe -authtoken=网站里的authToken
二、简易版1、导入 Maven 依赖12345678910111213<!-- 支付宝-完整版--><!- ...
无题
MySQL实战45讲-笔记
[toc]
零、参考资料+工具
图片转Base64编码 - 在线工具 - OKTools
一、SQL 语句的执行过程
功能实现方案
功能实现方案
[toc]
0、资料
订单相关:
订单系统的设计
订单30分钟取消功能
防止重复支付
防止重复下单
抢红包系统
支付功能
优惠券设计
秒杀
限流相关:
不雅词过滤
接口限流
Redis限流
其他:
任务调度
文件断点续传
权限控制
消息推送
消息推送
IP归属地
短链生成
1、热搜+不雅词过滤使用java和redis实现一个简单的热搜功能,具备以下功能:
搜索栏展示当前登陆的个人用户的搜索历史记录,删除个人历史记录
用户在搜索栏输入某字符,则将该字符记录下来 以zset格式存储的redis中,记录该字符被搜索的个数以及当前的时间戳 (用了DFA算法,感兴趣的自己百度学习吧)
每当用户查询了已在redis存在了的字符时,则直接累加个数, 用来获取平台上最热查询的十条数据。(可以自己写接口或者直接在redis中添加一些预备好的关键词)
最后还要做不雅文字过滤功能。这个很重要不说了你懂的。
代码实现热搜与个人搜索记录功能,主要controller层下几个方法就行了 :
向redis 添加热搜词汇(添加的时候使用下面不雅文字过滤的方法来 ...
SSM-综合项目-传智健康
SSM-综合项目-传智健康
[toc]
零、资料
视频:
传智健康-SSM-黑马
参考:
仓库-1
仓库-2
https://pan.baidu.com/s/1LxIxcHDO7SYB96SE-GZfuQ,提取码:dor4 (第三阶段)
项目-SQL-gitee
一、环境搭建1、项目结构
项目结构
2、创建项目的父工程(health)父工程的作用:设定全局的jar包版本。
项目的父工程,是一个普通的Maven项目,不需要选择骨架,只需要在父工程的pom.xml文件中,设置打包方式、版本号、编译插件即可。
父工程的pom.xml文件,添加以下配置:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 ...
SSM-综合项目-传智健康
SSM整合Vue
[toc]
参考资料
Vue-整合SSM
一、前端1、环境搭建
node
webpack
vue-cli
axios
element-ui
Vue的插件(router、vuex)
1.1、NodeJS 的安装与配置第一步 安装:NodeJS-安装教程
第二步 配置淘宝镜像: npm install -g cnpm --registry=https://registry.npmmirror.com
1.2、Webpack的安装安装:cnpm install -g webpack
1.3、VueCli 的安装cnpm install -g @vue/cli
1.4、Vue-router 的安装【在项目文件夹内】cnpm install --save vue-router
路由前后变化的部分显示在router-view标签中。
123456789101112131415161718192021222324252627// router/router.js import { createRouter,createWebHistory } f ...
SpringCloud-笔记
SpringCloud-笔记
[toc]
零、资料
SpringCloud-黑马
一、微服务概述1、微服务技术栈
微服务技术栈
微服务是为了拆分服务,形成服务集群。
服务集群
由于服务过多,调用关系过于复杂,因此,需要有一个注册中心,来记录服务集群的调用关系,每次调用时,只需要到注册中心去找需要调用的服务的ip就行了。
注册中心
因为服务过多,造成配置过多,难以维护,所以需要配置中心来记录每个服务的配置。
配置中心
为了让用户访问微服务,所以需要服务网关。
服务网关
为了加快访问,所以需要有分布式缓存。
分布式缓存和数据库集群
为方便查询,需要分布式搜索
分布式搜索
为加快速度,需要有异步通信的消息队列
消息队列
2、微服务架构的演变过程2.1、单体架构单体架构,将所有的业务功能放在一个项目中开发,打成一个包部署。
优点:架构简单,部署成本低。
缺点:高耦合
单体架构
2.2、分布式架构根据业务功能,对系统进行拆分,每个业务模块作为一个独立项目,每个业务模块成为一个服务。
优点:低耦合,易扩展。
缺点 ...