Docker的基本使用
Docker使用Google推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。
Docker在容器的基础上进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得Docker技术比虚拟机技术更为轻便、快捷。
基本概念镜像:一个特殊的文件系统操作系统分为内核和用户空间。对于Linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像(Image),就相当于是一个root文件系统。
Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
镜像不包含任何动态数据,其内容在构建之后也不会被改变。
Docker设计时,就将其设计为分层存储的架构,镜像实际是由多层文件系统联合组成。
镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生 ...
redis进阶篇
Redis缓存实际开发中,会构筑多级缓存来使系统运行速度进一步提升,例如:本地缓存与redis中的缓存并发使用
浏览器缓存:主要是存在于浏览器端的缓存
应用层缓存:可以分为tomcat本地缓存,比如之前提到的map,或者是使用redis作为缓存
数据库缓存:在数据库中有一片空间是 buffer pool,增改查数据都会先加载到mysql的缓存中
CPU缓存:当代计算机最大的问题是 cpu性能提升了,但内存读写速度没有跟上,所以为了适应当下的情况,增加了cpu的L1,L2,L3级的缓存
缓存更新策略缓存更新是redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数据进行更新,或者把他叫为淘汰更合适。
内存淘汰:redis自动进行,当redis内存达到设定的max-memery的时候,会自动触发淘汰机制,淘汰掉一些不重要的数据(可以自己设置策略方式)
超时剔除:给redis设置了过期时间ttl之后,redis会将超时的数据进行删除,方便继续使用缓存
主动更新:手动调用方法把缓存删掉,通常用 ...
Git入门
Git是一个分布式的版本控制系统,可以管理应用开发版本,同样可以作为部署工具使用。
常用的git平台:GitHub、Gitee、GitLab等
基本概念
工作区:仓库的目录。工作区是独立于各个分支的。
暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库:存放所有已经提交到本地仓库的代码版本
版本结构:树结构,树中每个节点代表一个代码版本。
常用命令git config --global user.name xxx:设置全局用户名,信息记录在/.gitconfig文件中git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在/.gitconfig文件中git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中git add XX:将XX文件添加到暂存区
git add .:将所有待加入暂存区的文件加入暂存区
git rm --cached XX:将文件从仓库索引目录中删掉git commit -m "备注信息":将暂存区 ...
Linux基础
转载自AcWing——Linux基础课
文件操作常用命令
ctrl c: 取消命令,并且换行
ctrl u: 清空本行命令
tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
pwd: 显示当前路径
cd XXX: 进入XXX目录下, cd .. 返回上层目录
cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
mkdir XXX: 创建目录XXX
rm XXX: 删除普通文件
rm XXX -r: 删除文件夹
mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
touch XXX: 创建一个文件
cat XXX: 展示文件XXX中的内容
复制文本
windows/Linux下:Ctrl + insert
Mac下:command + ...
redis入门篇
Redis是一个基于内存的key-value结构NoSql数据库。相比于常规的数据库,Redis
基于内存存储,读写性能高
适合存储热点数据(热点商品、资讯、新闻)和在短时间内有大量访问的数据
应用广泛
Redis启动安装好Redis并配置好环境变量之后,在cmd中使用redis-server启动redis,Redis服务默认端口号为6379。
使用命令redis-cli连接客户端,默认连接的是本地的redis服务,并且使用默认6379端口。也可以通过指定如下参数连接:-h ip地址-p 端口号 -a 密码(如果有)
也可以使用Another-Redis-Desktop-Manager图形化工具连接和管理Redis
Redis数据类型Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:
字符串(string):普通字符串,Redis中最简单的数据类型
哈希(hash):类似于Java中的HashMap结构
列表(list):按照插入顺序排序,可以有重复元素,类似于Java中的LinkedList
集合(set):无序集合,没有重 ...
MyBatis-Plus
MyBatis-Plus是MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生
特性:
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model ...
SpringBoot3框架入门
SpringBoot3介绍SpringBoot帮我们简单、快速地创建一个独立的、生产级别的 Spring应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术
SpringBoot的主要目标是:
为所有 Spring 开发提供更快速、可广泛访问的入门体验。
开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整。
提供一系列大型项目通用的非功能性程序(如嵌入式服务器、安全性、指标、运行检查等)。
约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件。
总结:简化开发,简化配置,简化整合,简化部署,简化监控,简化运维。
快速入门
场景:浏览器发送**/hello**请求,返回”Hello,Spring Boot 3!“
开发步骤
创建Maven工程
添加依赖(springboot父工程依赖 , web启动器依赖)
编写启动引导类(springboot项目运行的入口)
编写处理器Controller
启动项目
创建项目
添加依赖
添加父工程坐 ...
SpringMVC框架入门
Spring Web MVC是基于Servlet API构建的原始Web框架,SSM框架构建起单体项目的技术栈需求!其中的SpringMVC负责表述层(控制层)实现简化
SpringMVC的作用主要覆盖的是表述层,例如:
请求映射
数据输入
视图界面
请求分发
表单回显
会话控制
过滤拦截
异步交互
文件上传
文件下载
数据校验
类型转换
总结:
简化前端参数接收( 形参列表 )
简化后端数据响应(返回值)
以及其他……
SpringMVC核心组件和调用流程Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度!
除了DispatcherServletSpringMVC还会提供其他特殊的组件协作完成请求处理和响应呈现。
SpringMVC处理请求流程:
SpringMVC涉及组件理解:
DispatcherServlet:SpringMVC提供,我们需要使用web.xml配置使其生效,它是整个流程处理的核心,所有请求都经过它的处理和分发
HandlerMapping:Spr ...
MyBatis框架入门
MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录
基本使用向SQL语句传参mybatis日志输出配置mybatis配置文件设计标签和顶层结构如下:
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
我们可以在mybatis的配置文件使用settings标签设置,输出运行过程SQL日志,通 ...
Spring框架入门
Spring与SpringFramework广义的 Spring:Spring 技术栈(全家桶)
广义上的 Spring 泛指以 Spring Framework 为基础的 Spring 技术栈。
经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。
这些子项目涵盖了从企业级应用开发到云计算等各方面的内容,能够帮助开发人员解决软件发展过程中不断产生的各种实际问题,给开发人员带来了更好的开发体验。
狭义的 Spring:Spring Framework(基础框架)
狭义的 Spring 特指 Spring Framework,通常我们将它称为 Spring 框架。
Spring Framework(Spring框架)是一个开源的应用程序框架,由SpringSource公司开发,最初是为了解决企 ...