自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Apache-CXF的WebService代码生成

一、Apache-CXF1. 下载官方下载地址:http://cxf.apache.org/download.html下载 apache-cxf-3.4.4.zip 并解压2. 配置环境变量新增CXF_HOME系统变量 值为上一步解压的路径 (例如:D:\devsoft\apache-cxf-3.4.4)给系统变量Path添加环境变量 %CXF_HOME%\bincmd 输入 wsdl2java -v 验证配置3. 生成代码在Apache-CXF的bin目录下执行# -encod

2021-08-19 11:07:43 18

原创 Linux操作集

一、基础操作二、基础环境1.java-1.8.0-openjdk安装# 查看云端目前支持安装的jdk版本yum search java|grep jdk# 选择版本后,安装(执行以下命令会自动安装jdk相关依赖)yum install -y java-1.8.0-openjdk# 安装完成,验证是否安装成功java -version# 通过搜索java文件,查找jdk默认安装目录find / -name 'java'三、Docker相关...

2021-03-01 15:22:50 42

原创 MySQL深度解析---可重复读的间隙锁

InnoDB的默认事务隔离级别是可重复读一、幻读1.SQL场景复现建一个测试表:CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`)) ENGINE=InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15.

2021-03-01 15:20:22 105

原创 计算机中数据的表示

一、数据的表示1.各种数制1-1 二进制特点:逢二进一,有两个字符(0和1)符号表示:字母B或下标22的10次方 = 1024 它需要用11位二进制位来表示(包含符号位)1-2 八进制特点:逢八进一,有八个字符(0 ~ 7)符号表示:字母O或 下标81-3 十进制特点:逢十进一,有十个字符(0 ~ 9)符号表示:字母D或 下标101-4 十六进制特点:逢十六进一,有十六个字符(0 ~ 9,A ~ F)符号表示:字母H 或下标16十六进制按权展开:(5C)H =

2021-03-01 10:17:10 288

原创 知识点汇总

一、考试知识点Internet基础知识URLURL(Uniform Resource Locator)统一资源定位符作用:用于定位网络上的资源,每一个网络资源都有在网上唯一的一个地址组成:资源类型、存放资源的主机域名、资源文件名语法格式:protocol://hostname[:port]/path/filename其中,方括号内为可选项。protocol :指定使用的传输协议,常见的有HTTP或HTTPS,也可以有其他协议,比如:file、ftp、gopher、mms、ed2k等。ho

2020-12-30 09:46:34 135

原创 MySQL深度解析---单行SQL慢查询原因分析

此处讨论不涉及CUP占用高或IO利用率过高导致的SQL执行慢问题一、查询长时间不返回对于一个SQL,如果长时间不返回,可以执行show processlist命令来查看所有线程的状态mysql> show processlist1.等MDL锁执行show processlist命令后,State中显示:Waiting for table metadata lock 表示的是,现在有一个线程正在表t上请求或者持有MDL写锁,把select语句堵住了。处理方式找到谁持有MDL写锁,然.

2020-12-18 09:40:55 42

原创 MySQL深度解析---函数对性能的影响

重点:对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索(索引)功能一、条件字段函数操作交易记录表tradelog 包含交易流水号(tradeid)、交易员id(operator)、交易时间(t_modified)等字段建表语句如下:mysql> CREATE TABLE `tradelog` ( `id` int(11) NOT NULL, `tradeid` varchar(32) DEFAULT NULL, `operator` int(11) DE

2020-12-17 16:51:01 532

原创 MySQL深度解析---临时表排序规则

一、内存临时表排序内存临时表触发条件:rand() 随机函数mysql> explain select word from words order by rand() limit 3;Extra字段显示Using temporary,表示的是需要使用临时表;Using filesort,表示的是需要执行排序操作。因此这个Extra的意思就是,需要临时表,并且需要在临时表上排序。1.内存临时表排序方式选择对于内存临时表来说,表中的数据都在内存中存储,相当于回表过程只是简单地根据

2020-12-17 14:53:37 157

原创 MySQL深度解析---OrderBy工作原理

案例前提假设一个表的部分定义是这样的CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city`)) ENGINE=InnoDB;要查询城市是

2020-12-17 09:54:36 66

原创 JavaScript开发常用知识

一、JavaScript基础知识1.基本语法每行语句以 ; 结束语句块用 {} 包围行注释用 // 块注释用 /**/ 大小写严格2.数据类型和变量数据类型Number:包括整型和浮点数例如: 123 0.123 1.2345e3 -0.1 NaN 表示无法计算的结果,比如 0/0 Infinity 表示无限大字符串:用 '' 或 "" 包围的一串字符 如果字符串里需要有特殊字符就需要用 \ 来转义 转义字符: \n 换行 \t 制表符 \\ 表示一个\

2020-11-19 15:34:50 38

原创 计算机基础知识

一、计算机软硬件知识1.计算机的发展和应用计算机的诞生: 第一台计算机 ENIAC 于 1946年 诞生于 美国 宾夕法尼亚 大学计算机发展阶段: 以电子元器件划分发展阶段电子管 第一代–1946-1957晶体管 第二代–1958-1964 操作系统刚出现的时期中小规模集成电路 第三代–1965-1970大超大集成电路 第四代–1971-至今 以微处理器为核心、也称个人PC、最广泛使用操作系统的时期计算机应用:科学计算(计算机最早期的用途、也是名字的由来)过程控制(

2020-11-06 08:12:33 12307 1

原创 Vue快速入门

官网 :https://cn.vuejs.org/一、概念Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。二、快速入门1.起步引入JS<!-- 1.开发环境版本,包含了有帮助的命令行警告 --><.

2020-11-05 09:54:53 50

原创 ES6新特性

一、ES6全称 ECMAScript6 是浏览器脚本语言的规范,而JavaScript则是规范的具体实现。1.新特性1.1 let1.1.1 作用域严格 <script> //var 声明的变量往往会越域 //let 声明的变量有严格的局部作用域 { var a = 1; let b = 2; } console.log(a); //1 co.

2020-11-03 17:32:00 89

原创 Gmall环境搭建过程记录

vagrant镜像仓库地址:https://app.vagrantup.com/boxes/search

2020-11-03 10:49:19 349

原创 MySQL深度解析--Count函数的用法

MySQL中Count(*)的用法1.Count的实现方式MyISAM引擎把一个表的总行数存在了磁盘上,因此执行count(*)的时候会直接返回这个数,效率很高;InnoDB引擎就麻烦了,它执行count(*)的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。这和InnoDB的事务设计有关系,可重复读是它默认的隔离级别,在代码上就是通过多版本并发控制,也就是MVCC来实现的。每一行记录都要判断自己是否对这个会话可见,因此对于count(*)请求来说,InnoDB只好把数据一行一行地读

2020-10-28 11:27:48 89

原创 MySQL深度解析--数据的删除与重建表

Ⅰ.数据存放和数据删除1.MySQL中数据的删除流程(delete)删除一条记录时,InnoDB会将该记录标记为删除(可复用)状态。并不会从磁盘上释放该记录所在的空间,只是如果后面有数据要插入该位置时可以直接复用该存储空间。删掉了一个数据页上的所有记录时,整个数据页就可以被复用了。如果表(任意表)需要新的数据页时,都可以复用这个数据页。数据页的复用和记录的复用是不同的记录的复用,只限于符合范围条件的数据。数据页的复用,可以复用到任何位置。2.数据空洞删除数据或者插入数据会造成数据

2020-10-28 10:52:37 381

原创 MySQL深度解析--优化器

优化器Ⅰ.优化器的索引选择一些概念:优化器:选择SQL语句执行使用的索引,找到一个最优的执行方案,并用最小的代价去执行语句。优化器的执行代价:扫描行数、是否使用临时表、是否排序扫描行数扫描行数是根据统计信息来估算的一个数。统计信息指索引的区分度,一个索引上,不同的值的个数(基数[cardinality])越多,区分度就越好。基数是通过采样统计的,取N个数据页,统计基数,得到一个平均值,然后再乘以索引的页面数。当修改数据行超过一定阈值后,会自动触发重新统计一次基数。参数 innodb_sta

2020-10-27 15:41:48 129

原创 MySQL深度解析--锁

Ⅰ.MySQL中的锁1.全局锁概念对整个数据库实例加锁。让整个库处于只读状态。开启全局锁后,其他线程的数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句将被阻塞。命令(FTWRL)Flush tables with read lock 使用场景全库逻辑备份(对于使用了不支持事务引擎的表或库)使用FTWRL命令使全库进入只读状态,然后对整个库进行备份。防止备份过程中各表视图不一致的问题。存在的问题:如果你在主库上备份,那么在备份期间都不能执行更新

2020-10-26 14:39:59 77

原创 MySQL深度解析--索引

Ⅰ.索引索引的作用索引的出现就是为了提高查询效率,相当于数据的一个目录。索引的模型选择提高数据读写效率的模型主要有Hash、有序数组、搜索树。Hash 数据结构由Hash函数、数组和链表组成。在写入数据时可以直接找到对应位置存放数据,或者直接在对应位置链表后追加数据。写入效率高。但是查询的时候只有第一层数组的时候较快,如果同一个Hash位置有多个值组成的链表,那么就需要遍历该位置所有链表数据,在范围查询时效率低。所以Hash只适用于只有等值查询的场景,比如NoSQL引擎。有序数组中所有元素都是

2020-10-26 10:48:08 39

原创 MySQL深度解析--事务隔离级别

MySQL事务隔离Ⅰ.四种隔离级别1.读未提交一个事务还没提交时,它做的变更就能被别的事务看到。2.读已提交一个事务提交之后,它做的变更才会被其他事务看到。3.可重复读一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。4.串行化顾名思义是对于同一行记录,“写”会加“写锁”,“读”会加“读锁”。当出现读写锁冲突的时候,后访问的事务必须等前一个事务执行完成,才能继续执行。Ⅱ.隔离机制分析读未提交直接返回记

2020-10-23 16:13:05 108

原创 MySQL深度解析---日志系统

一、日志系统redo log (重做日志)1.功能作用InnoDB引擎特有的日志,用来临时的记录数据库的更新操作。记录的是“在某个数据页上做了什么修改”。2.原理解析redo log 是物理日志,它分为两部分,一部分是在内存中的日志缓冲redo log buffer,另一部分是在磁盘上的重做日志文件 redo log file。而每次把日志从内存持久化到磁盘都需要经过操作系统内核空间os buffer 并且调用一次操作系统的fsync()操作,调用fsync()的作用就是将OS buffer中的日

2020-10-23 15:20:37 142

原创 MySQL深度解析----基础架构

一、MySQL基础架构大体来说MySQL可分为Server层和存储引擎层1、Server层Server层包含了所有跨存储引擎的功能,比如存储过程、触发器、视图、还有所有内置函数(如日期、时间、数学等),此外Server层还包含了几个重要的组件,下面会逐个介绍它们的功能。连接器功能和客户端 建立连接、获取权限、维持和管理连接。特点在连接建立时一次性的获取权限,之后 此连接的权限都将取决于建立连接时获取的权限。常用命令mysql -h$ip -P$port -u$user -p --建

2020-10-22 14:37:11 62

原创 API开发实战----调用高德API实现轨迹纠偏里程校准

一、前言在一些和车辆设备有关的项目中需要用到回显车辆的运行轨迹、或者是显示车辆的详细信息(比如里程值、速度等等),但是有些时候,安装在车辆上的GPS上报设备上报的数据并不是百分之百的精准,可能的情况有:个别点的经纬度有偏差(并没有在道路上),车辆的里程值有误等等。本实例要解决的就是车辆的轨迹点偏移和里程值的更新校准。二、 总体思路在了解实现流程之前,需要对几个属性进行说明。设备号:安装在车...

2020-08-06 10:41:41 631 1

原创 SpringBoot热部署

108-devtools开发热部署只需要引入Spring-devtools依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>引入依赖后 重新编译

2020-08-04 15:35:08 45

原创 SpringBoot与分布式(Dubbo、SpringCloud)

分布式一般使用zookeeper+dubbo或者Spring Boot+Spring Cloud102、103-Dubbo简介、安装关于Dubbo详见Dubbo篇docker安装zookeeperdocker pull zookeeper104-分布式-SpringBoot整合Dubbo、zookeeper服务提供者:1.引入dubbo、zkClient依赖 <dependency> <groupId>com.alibaba.boot</grou.

2020-08-04 15:24:19 57

原创 SpringBootSecurity安全相关

99~101-安全-登录&认证&授权&权限控制&注销&记住我&定制登录页安全部分内容主要以演示功能为主,实际项目中用户信息和权限都存在数据库中。1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId>

2020-08-02 17:51:16 66

原创 SpringBoot任务相关(定时、异步、邮件)

95-任务-异步任务在处理与第三方进行交互的时候,可以使用异步任务来交互,避免过长的等待时间。Spring在3.x之后就使用了@Async来使用异步。在主程序上开启异步注解@EnableAsync //开启异步注解功能@SpringBootApplicationpublic class Springboot04TaskApplication { public static void main(String[] args) { SpringApplication.run(Springbo

2020-08-02 16:42:53 80

原创 SpringBoot与ElasticSearch整合

91、92-ES安装、入门详见ES篇。93-检索-SpringBoot整合Jest操作ESSpringBoot默认是用Spring-Data-ElasticSearch模块进行操作1.使用Jest来操作ES导入依赖 <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>5.3.3</ve

2020-08-02 16:06:07 142

原创 SpringBoot与消息中间件RabbitMQ

84-JMS&AMQP消息协议1.消息队列一般用来解决:异步处理应用解耦流量削峰(秒杀)2.消息队列的两种主要形式:点对点发布/订阅3.两种不同的消息协议JMS(Java Message Service)基于JVM消息代理的规范,ActiveMQ是JMS实现AMQP(Advanced Message Queuing Protocol)高级消息队列协议,也是一个消息代理的规范,兼容JMS,RabbitMQ是AMQP的实现两种消息协议的对比4.Spring支持

2020-08-02 14:47:50 79

原创 SpringBoot中缓存的使用

72-JSR107缓存规范JSR是一种缓存规范1.Java Caching定义了5个核心接口CachingProvider: 定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheManager: 定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。Cache: 是一个类似Map的数

2020-07-27 22:45:09 104

原创 SpringBoot应用启动原理

67-启动原理-创建SpringBootApplication对象的初始化几个重要的事件回调机制:配置在META-INF/spring.factories—(代表重写时需要在静态文件夹下新建META-INF/spring.factories文件,参照源码的配置格式配置重写的类)ApplicationContextInitializerSpringApplicationRunListener只需要放在ioc容器中—(代表重写时需要在重写类上加@Compont注解)ApplicationRu

2020-07-21 20:37:15 84

原创 SpringBoot数据访问

59-SpringBoot数据访问简介SpringBoot中的数据访问都是使用了Spring全家桶中的SpringData。启动器中带data的就表示使用了SpringData。数据访问主要介绍:JDBC、MyBatis、JPA60-JDBC&自动配置原理构建项目时勾选MySql和JDBC等等,导入依赖。1.JDBC依赖:<dependency> <groupId>org.springframework.boot</groupId> &

2020-07-21 09:37:19 68

原创 Docker快速入门

51- web开发-外部Servlet容器启动SpringBoot应用原理1.使用外部Servlet容器的启动过程SpringBoot打成jar包的执行过程:执行SpringBoot主类的main方法,启动ioc容器,创建嵌入式的Servlet容器;SpringBoot打成war包的执行过程:启动服务器,服务器启动SpringBoot应用【SpringBootServletInitializer】,最后启动ioc容器;war包的执行具体流程:启动Tomcat(先启动Servlet容器)服务

2020-07-18 15:57:52 90

原创 SpringBoot-Controller和前后端交互相关

41-【实验】-员工修改-重用页面-修改完成1.回显员工信息:用get的方式获取单个员工信息Controller中使用@GetMapping("emp/{id}")使用@PathVariable("id")来获取请求路径中的id获取后把获取到的对象放入model的数据对象中:model.setAttribute("emp",employee);2.重用页面:使用以下标签实现重用th:value="${emp!=null}?${emp.lastName}"//如果回显对象不为空就

2020-07-17 12:17:17 295

原创 SpringBoot模板引擎thymeleaf

SpringBoot推荐使用thymeleaf页面模板引擎MVC的Controller一、引入thymeleafthymeleaf2 适配 layout1thymeleaf3 适配 layout2<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId>

2020-06-22 23:27:57 78

原创 SpringBoot日志选用与实现

注解:@Conditionnal作用:判断某个状态是否成立,才给容器中添加组件,配置类里面的内容才生效。它有很多派生注解:判断容器中是否存在指定bean判断容器中是否存在指定class判断是web项目等等。自动配置类只有在一定条件下才能生效,所以就算导入自动配置,每个配置类也只有在条件满足的情况下自动配置。那么如何查看当前哪些类的自动配置生效了呢?主配置中配置:debug=true让控制台打印自动配置报告,这样就可以看到哪儿些配置类生效。Positive matches:生效的配置类

2020-06-10 23:28:31 129

原创 SpringBoot构成、特性、配置文件

Demo版本:JDK1.8SpringBoot:1.5.9Maven:3.3.9Idea:2020.01HelloWorld:创建一个Maven项目1.引入依赖2.编写启动器,用@SpringBootApplication标注主程序3.编写一个Controller,这个Controller需要在启动类的所在包内才能被扫描Controller使用的是Spring的注解来做寻址和返回json等等SpringBoot程序可以打成一个Jar包。在服务器上直接用java -jar 直接运行。因

2020-06-04 23:32:03 110

原创 Dubbo通信协议特性对比

通信协议是RPC框架中网络传输的基础,在不同的场景下应用不同的通信协议也是dubbo灵活性和易用性的一种体现。

2020-05-25 23:57:52 107

原创 Dubbo的一些思考

总览众所周知,dubbo是一个分布式RPC框架,主要解决服务间互相调用的问题。调用其实类似接口调用,如果想要调用不同服务器上的接口可以使用HTTP直接调用的方法,但是这种方法的开销很大,并且不好处理远程调用中出现的各种问题(超时重试、负载均衡等等),也不方便监控服务端的存活情况,接口调用的次数等等。而dubbo有着自己的监控中心来监控服务端和消费端之间交互的次数、注册中心来引导消费端均衡、高可用的调用服务端的服务。并且支持多种网络编码方式,在特定的使用场景可以灵活配置为更适合的网络编码方式。dubbo可以

2020-05-21 22:26:52 132

原创 Redis进阶--常见问题整理

一、在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?1)项目中缓存是如何使用看具体项目的应用场景,比如说:我的项目是一个和车辆上报的信息有关的项目,车的数量很多,上报很频繁,但是上报数据到项目时,需要拿到该车辆的信息(最大限速、规定的活动范围等等),来进行一些是否超速,是否越界的判断。这时候,如果从数据库中取,那么给数据库的压力会非常大,所以用缓存来缓解数据库压力。2)为啥在项目里...

2020-04-01 10:15:16 314

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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