解决SpringBoot循环依赖问题
解决 Springboot 循环依赖问题将接口与实现 impl 分模块处理,引用链接
实际开发环境中,在 xxx-api 模块中添加接口,在对应的 xxx 模块中实现各自的接口,解决。
Lambda和Stream
Lambda表达式Lambda 表达式的基础语法
Java8中引入了一个新的操作符 “->” 该操作符称为箭头操作符或 Lambda 操作符
箭头操作符将 Lambda 表达式拆分成两部分:
左侧:Lambda 表达式的参数列表
右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体
语法格式
语法格式一:无参数,无返回值
1() -> System.out.println("Hello Lambda!");
语法格式二:有一个参数,并且无返回值
1(x) -> System.out.println(x)
语法格式三:若只有一个参数,小括号可以省略不写
1x -> System.out.println(x)
语法格式四:有两个以上的参数,有返回值,并且 Lambda 体中有多条语句
1234Comparator<Integer> com = (x, y) -> { System.out.println("函数式接口"); return Integer.c ...
谷粒商城
环境安装
安装CentOS
CentOS安装docker
docker安装redis
docker安装mysql
docker安装rabbitmq
.gitignore文件123456789101112131415161718target/pom.xml.tagpom.xml.releaseBackuppom.xml.versionsBackuppom.xml.nextrelease.propertiesdependency-reduced-pom.xmlbuildNumber.properties.mvn/timing.properties# https://github.com/takari/maven-wrapper#usage-without-binary-jar.mvn/wrapper/maven-wrapper.jar**/mvnw**/mvnw.cmd**/.mvn**/target**/.gitignore.idea
项目结构
商品服务product
存储服务ware
订单服务order
优惠券服务coupon
用户服务member
每个模块导 ...
Docker各软件安装
Docker软件安装MySQL安装⚠️实战版
新建mysql容器实例
123456docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
新建my.cnf,修改mysql字符编码
通过容器卷同步给mysql容器实例
12345[client]default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8
重新启动mysql容器实例再重新进入并查看字符编码
1SHOW VARIABLES LIKE 'character%'
再新建库新建表 ...
Docker高级篇
Dockerfile
Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
官网详解
构建三步骤
编写Dockerfile文件
docker build命令构建镜像
docker run依镜像运行容器实例
Dockerfile内容基础知识
每条保留字指令都必须为大写字母且后面要跟随至少一个参数
指令按照从上到下,顺序执行
#表示注释
每条指令都会创建一个新的镜像层并对镜像进行提交
Docker执行Dockerfile的大致流程
docker从基础镜像运行一个容器
执行一条指令并对容器作出修改
执行类似docker commit的操作提交一个新的镜像层
docker再基于刚提交的镜像运行一个新容器
执行dockerfile中的下一条指令直到所有指令都执行完成
从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,
Dockerfile是软件的原材料
Docker镜像是软件的交付品
Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例
...
Redis
开始
select 切换数据库(默认0—15)
dbsize 查看当前数据库key的量
flushdb清空当前库
flushall通杀所有库
Redis键(key)
keys * 查看当前库所有key
exists key 判断key是否存在
type key 查看key类型
del key 删除key数据
unlink key 根据value选择且非阻塞 删除
(仅将keys从keyspace元数据中删除,真正的删除将在后续异步删除)
expire key 10 为key设定过期时间,10:10秒钟
ttl key 查看key还有多久过期,-1:永不过期,-2:已经过期
<img src="https://raw.githubusercontent.com/boyiz/OSS/main/img/image-20220607163156282.png" alt="image-20220607163156282" style="zoom:50%;" />
...
Docker基础篇
Docker基础篇Docker三件套
镜像image: 参考java类模板
只读模板,用来创建Docker容器
一个镜像可以创建多个容器
容器container:实例对象
独立运行的一个或一组应用,提供一个虚拟化运行环境
容器是镜像创建的运行实例
仓库repository:存放镜像
集中存放镜像文件的场所
类似Maven仓库、GitHub
Redis:镜像
Redis r = docker run 镜像 ———— 一个容器实例
Docker工作原理C/S 模式架构,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。
Docker安装Ubuntu
警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker.
准备工作系统要求Docker 支持以下版本的 Ubuntu 操作系统:
Ubuntu Hirsute 21.04
Ubuntu Groovy 20.10
Ubuntu Focal 20.04 (LTS)
Ubuntu ...
Go基础语法
Go标识符在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。
关键字关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。
Go语言中有25个关键字:
12345break default func interface selectcase defer go map structchan else goto package switchconst fallthrough if range typecontinue for import return var
此外,Go语言中还有37个保留字。
12345678910Consta ...
Go准备与安装
Go——前期准备课程物料搭建Go语言开发环境安装用brew安装go|配置GOPATH(环境变量 —> .zshrc)
GOROOT:安装位置
GOPATH:存放代码的位置
go env:查看go环境配置
GOPATH目录下新建三个文件夹: src bin pkg
源码存放建议:
开发编辑器Goland(jetbrains公司软件,收费)
VS Code(开源,轻量级)
VS Code安装Go扩展
编译go build 1、在项目目录下执行go build
2、在其他路径下执行go build ,需要加上项目的路径(项目路径从GOPATH/src后开始写)
3、go build -o 指定文件名
go run 像执行脚本文件一样执行Go代码
go install 分为两步:1.先编译得到可执行文件,2.将文件拷贝到GOPATH/bin下
跨平台交叉编译 在一个平台上生成另一个平台的可执行程序