自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (2)
  • 收藏
  • 关注

原创 spring boot本地事务@Transactional参数详解

1. 本地事务商品新增功能非常复杂,商品管理微服务在service层中调用保存spu和sku相关的方法,为了保证数据的一致性,必然会使用事务。在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。咱们之前玩的事务都是本地事务。所谓本地事务,是指该事务仅在当前项目内有效。1.1. 基本概念事务的概念:事务是逻辑上一组操作,组成这组操作各个逻辑单元,要么一起成功,要么一起失败。事务的四个特性(ACID):

2021-10-06 23:44:58 1800 1

原创 解决springboot往mysql插入时间为空

选择 Spring Data JPA 框架开发时,常用在实体和字段上的注解有`@Entity`、`@Id`、`@Column`等。在表设计规范中,通常建议保留的有两个字段,一个是更新时间,一个是创建时间。​ 最近在学习SpringBoot,往MySQL数据库中保存订单数据时,创建时间和更新时间并没有想预想的一样自动填充到数据库中。​ 经过查询资料了解到以下方法可以解决上述问题。@CreationTimestamp使用该注解可以让Hibernate在插入时针对注解的属性对应的日期类型创建默认值。

2020-07-02 18:15:33 1674 1

原创 JVM与GC

这里的四者之间的关系是包含关系。不是上层下层,也不是子父类的继承关系。在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什么要自定义类加载器?

2023-05-06 21:42:40 577

原创 类的加载过程(生命周期)

了解类的加载过程

2023-02-26 21:03:57 566

原创 JAVA设计原则和设计模式

用设计原则去审视你的代码,用设计模式去优化你的代码

2022-07-09 23:37:21 260

原创 mybatis笔记

#{}和${}区别区别1#{} :相当于JDBC SQL语句中的占位符? (PreparedStatement)${} : 相当于JDBC SQL语句中的连接符合 + (Statement)区别2#{} : 进行输入映射的时候,会对参数进行类型解析(如果是String类型,那么SQL语句会自动加上’’)${} :进行输入映射的时候,将参数原样输出到SQL语句中区别3#{} : 如果进行简单类型(String、Date、8种基本类型的包装类)的输入映射时,#{}中参数名称可以

2022-05-14 10:24:33 140

原创 springcloud项目整合sleuth或zipkin后启动报错,与redis初始化冲突死锁

问题springcloud项目整合sleuth后启动报错org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name ‘org.springframework.cloud.sleuth.sampler.SamplerAutoConfiguration$RefreshScopedSamplerConfiguration’: Singleton bean creation no

2021-10-17 17:13:35 2548 2

原创 分布式锁Redisson快速入门及利用AOP实现声明式缓存

1. 分布式锁之Redisson​ Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务。其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Pub

2021-10-16 23:15:58 483

原创 使用redis实现分布式锁解决分布式缓存问题

1. 缓存商城首页的访问量非常大,而首页中的商品类目访问量更大,鼠标移动就在访问,查询所有的数据,如果每次访问都实时到数据库获取数据,数据库的访问压力太大。而这些信息一般更新的频率比较低,短时间内不会发生改变。因此,我们可以考虑在前台系统中,增加一层缓存,把这些数据缓存起来,请求到来时,不再调用数据接口,而是直接读取缓存中的数据。这样就能大大减少首页分类加载所需时间,提高并发性能。加不加缓存的标准:变化频率低访问频繁实现:使用Redis实现缓存。1.1. 如何实现先读

2021-10-16 23:03:10 731

原创 干掉JSP!!!一文带你了解模板引擎技术-Thymeleaf

1. 认识thymeleaf1.1. 模板技术把页面中的静态数据替换成从后台数据库中的数据。这种操作用jsp就可以实现。但是Spring boot 的架构不推荐使用Jsp,而且支持也不好,所以如果你是用springboot的话,一般使用Freemarker或者Thymeleaf。官方推荐使用Thymeleaf。1.2. 简介官方网站:https://www.thymeleaf.org/index.html教程:https://www.thymeleaf.org/documentation.ht

2021-10-16 21:32:40 555

原创 虎牙直播与1099端口冲突——启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099

idea启动web项目时报错:错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bind原因:猜测可能是虎牙直播在播放时占用了1099端口...

2021-10-11 22:17:12 459

原创 异步编排CompletableFuture

CompletableFuture异步调用问题:查询商品详情页的逻辑非常复杂,数据的获取都需要远程调用,必然需要花费更多的时间。假如商品详情页的每个查询,需要如下标注的时间才能完成// 1. 获取sku的基本信息 0.5s// 2. 获取sku的图片信息 0.5s// 3. 获取sku的促销信息 TODO 1s// 4. 获取spu的所有销售属性 1s// 5. 获取规格参数组及组下的规格参数 TODO 1.5s// 6. spu详情 TODO 1s.........那么,

2021-09-10 22:38:42 302

原创 elasticsearch基本操作及SpringData-Elasticsearch

1. elasticsearch基本操作1.1. 基本概念Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:索引(indices)----------------------Databases 数据库 类型(type)--------------------------Table 数据表 文档(Document)----------------------Row 行 字段(Field)--------

2021-09-07 23:19:35 740

原创 前后端跨域问题__CORS解决方案

跨域问题跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081二级域名不同item.jd.com 与 miaosha.jd.com如果域名和端口都相同,但是请求路径不同,不属于跨域,如:www.jd.com/itemwww.jd.com/goodshttp和https也属

2021-09-06 22:51:52 259

原创 强大的文本编辑器vi——常用快捷键

强大的文本编辑器vi四种模式正常模式H左J下K上L右yy复制当前行p粘贴3yy 复制三行y$ 复制光标到行尾内容dd 剪切当前行u 撤销ctrl+r 重做x 删除当前字符r 替换当前字符7+G 光标定位到第七行g 光标定位到第1行G 光标定位到第后一行^ 光标定位到行首$ 光标定位到行尾插入模式a 进入插入模式,光标定位到下一个字符A 进入插入模式,光标定位行尾i 进入插入模式,光标定位到上一个字符I 进入插入模式,光标定位行首o 进入插入模式,下

2021-08-24 00:39:06 490

原创 快速上手linux——配置“帮助命令man”显示中文

在学习linux命令的过程中,man是很有用的一个工具,但是对于很多英文水平有限的人来说学习起来有些困难,在此提供安装中文版man的详细步骤。本文以最常用的centOS为例。讲解如何安装man的中文版。查找man中文安装包$ yum list |grep man.*zhman-pages-zh-CN.noarch 1.5.2-4.el7 @base由此可以找到以上安装包,如果找不到,执行 yum -y update 更新安装包。执行安装命令sudo yum install man-pages-z

2021-08-22 23:18:36 1939

原创 springboot---devtools实现页面热部署

devtoolsdevtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实现),实现类文件热部署(类文件修改后不会立即生效),实现对属性文件的热部署。即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机),注意:因为其采用的虚拟机机制,该项重启是很快的第一步:添加相应的依赖:<dependency> <

2021-07-03 19:49:12 107

转载 分布式事务及seata基本使用

分布式事务理论商品管理微服务在service层中除了保存spu和sku相关的方法,又远程调用gmall-sms的保存接口,并在gmall-sms的service层中调用了保存营销信息的相关方法。如果保存营销信息的方法出现异常,会怎样?传统的一个工程内为了保证数据的一致性,使用本地事务。本地事务只能解决同一工程中的事务问题,而现在的场景更加复杂,关系到两个工程模块,怎么保证要么都成功,要么都失败?​ 分布式事务就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布

2021-05-01 13:23:38 814

原创 seata低版本与mybatis-plus批量保存方法冲突

问题重现<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> <version>2.1.0.RELEASE</version> </dependency>2.1.0.RELEASE默认导入了0.7.1的seata

2021-05-01 13:17:03 757

转载 linux中的分号&&和&,|和||说明与用法

在用linux命令时候,我们可以一行执行多条命令或者有条件的执行下一条命令,下面我们讲解一下linux命令分号&&和&,|和||的用法“;”分号用法方式:command1 ; command2用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败, 所有命令都会执行。“| ”管道符用法上一条命令的输出,作为下一条命令参数方式:command1 | command2Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为.

2021-04-19 14:27:57 636

原创 linux中>和>>的区别

linux中>>和>都属于输出重定向>会覆盖目标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。>>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。...

2021-04-14 09:33:02 1740

原创 db2 list command options

Db2 list command options 可以查看a 显示 SQLCA OFF-c 自动落实 ON-e 显示 SQLCODE/SQLSTATE OFF-f 读取输入文件 OFF-l 将命令记录到历史文件中 OFF-n 除去换行字符 OFF-o 显示输出 ON-p 显示交互式输入提示 ON-r 将输出保存到报告文件 OFF-s 在命令出错时停止执行 OFF-t 设置语句终止字符 OFF-v 回送当前命令 OFF-w 显示 FETCH/SELECT 警告信息 ON-x 不打印

2021-04-09 10:40:48 166

原创 十大排序算法-Java版

十大排序算法常见的递推式与复杂度Sort抽象类定义排序的抽象父类,具体的排序算法延迟到sort()方法中实现/** * @Description:定义排序的一些统计属性(如比较次数、交换次数、时间) * @author: cyb * @date: 2021-03-15 14:41 * @version V1.0 */public abstract class Sort<T extends Comparable<T>> implements Comparabl

2021-03-19 08:59:48 75

原创 使用红黑树实现TreeMap、TreeSet

红黑树实现TreeMap定义Map接口public interface Map<K,V> { int size(); boolean isEmpty(); void clear(); V put(K key, V value); V get(K key); V remove(K key); boolean containsKey(K key); boolean containsValue(V value); void t

2021-03-04 16:17:16 156 1

原创 类比4阶B树,了解红黑树基本概念及新增删除操作

基本概念红黑树也是一种自平衡的二叉搜索树,以前也叫做平衡二叉B树(Symmetric Binary B-tree)必须满足以下 5 条性质节点是 RED 或者 BLACK根节点是 BLACK叶子节点(外部节点,空节点)都是 BLACKRED 节点的子节点都是 BLACKRED 节点的 parent 都是 BLACK从根节点到叶子节点的所有路径上不能有 2 个连续的 RED 节点从任一节点到叶子节点的所有路径都包含相同数目的 BLACK 节点红黑树的等

2021-03-03 19:18:29 602

原创 AVL树的四种旋转

已知在一颗平衡二叉树上添加一个节点最坏情况:可能会导致所有祖先节点都失衡父节点、非祖先节点,都不可能失衡LL – 右旋转(单旋)g.left=p.rightp.right=g让p称为这颗子树的根节点还需要注意维护:T2、p、g的parent属性先后更新g、p的高度RR – 左旋转(单旋)g.right=p.leftp.left=g让p称为这颗子树的根节点还需要注意维护:T1、p、g的parent属性先后更新g、p的高度LR – RR左旋转,LL右旋转(双旋)//n

2021-03-01 15:59:56 309 1

原创 Springboot-Port xxx was already in use!!!解除端口占用

问题描述解决C:\Users\90466>netstat -ano | findstr 10000 TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING 3872C:\Users\90466>taskkill -PID 3872 -F成功: 已终止 PID 为 3872 的进程。

2021-02-22 10:17:23 472

原创 netty-实现心跳机制

netty基础概念Channel管道,其是对 Socket 的封装,其包含了一组 API,大大简化了直接与 Socket 进行操作的 复杂性。EventLoopGroupEventLoopGroup 是一个 EventLoop 池,包含很多的 EventLoop。 Netty 为每个 Channel 分配了一个 EventLoop,用于处理用户连接请求、对用户请求的处 理等所有事件。EventLoop 本身只是一个线程驱动,在其生命周期内只会绑定一个线程,让 该线程处理一个 Channel 的所有

2021-02-22 00:43:16 1288

原创 Struts2

Struts2Struts2两个重要组成部分struts2核心就是核心控制器和业务控制器。核心控制器StrutsPrepareAndExecuteFilterStrutsPrepareAndExecuteFilter作为一个filter运行在web应用中,负责拦截所有用户请求,该filter 会过滤用户请求,然后将请求都交给struts2框架处理。拦截器会默认拦截扩展名为.action的请求,什么后缀名都不写也可以。例如hello.action或者hello都会进行拦截。xxx.jsp就不会进行拦截

2021-02-20 12:00:30 307

原创 Hibernate

HibernateHibernate是一个开源的对象关系映射(ORM)框架。对JDBC进行了非常轻量级的对象封装。 将对象和数据库表建立映射关系,Hibernate框架使用在数据持久化层(dao)。 ORM:对象关系映射(英语:Object Relational Mapping)采用映射元数据(配置文件)来描述对象-关系的映射细节。ORM框架通过配置文件将实体对象和数据库表对应起来。Hibernate配置文件Hibernate从其配置文件中读取和数据库连接有关的信息。Hibernate配

2021-02-20 11:57:07 174

原创 apache-cxf简单使用——CXF整合Spring、CXF整合SpringBoot

CXFCXF是一个开源的WebService框架。Apache CXF = Celtix + XFire,开始叫 Apache CeltiXfire,后来更名为 Apache CXF 了。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来

2021-02-20 11:53:59 1800

原创 Web Service基础概念

Web ServiceWeb Service简介Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服

2021-02-08 10:26:55 477

原创 MySQL原理分析及分库分表

逻辑架构图连接器(Connectors)系统管理和控制工具(Management Serveices & Utilities)连接池(Connection Pool) SQL Layer MySQL业务层SQL接口(SQL Interface) 接收SQL DML DDL解析器(Parser) select * from t1词法分析 分词 ----- 》形成语法树语法分析 分析 : 符合SQL的语法 SQL的语法 : SQL 92 limit MYSQL自己的语法 elect *

2021-01-17 23:43:28 376

原创 Zookeeper 理论基础

1.1Zookeeper 简介ZooKeeper 由雅虎研究院开发,后来捐赠给了 Apache。ZooKeeper 是一个开源的分布式 应用程序协调服务器,其为分布式系统提供一致性服务。其一致性是通过基于 Paxos 算法的 ZAB 协议完成的。其主要功能包括:配置维护、域名服务、分布式同步、集群管理等。1.2一致性zk 是如何保证分布式系统的一致性的呢?是因为 zk 具有以下几方面的特点:1.2.1 顺序一致性从同一个客户端发起的多个事务请求(写操作请求),最终会被严格按照发起顺序记录 到 zk

2020-12-18 15:03:37 228

原创 RabbitMQ的基础概念及Linux安装

MQ的优势1、应用解耦MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。2、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。3、削峰填谷如订单系统,在下单的时候就会往数据库写数据。但是数据库只能支撑每秒1000左右的并发写入,并发量再高就 容易宕机。低峰期的时候并发也就100多个,但是在高峰期时候,并发量会突然激增到5000以上,这个时候数据库 肯定卡死了。MQ的劣势系统可用性降低系统引入的外部依赖越多,

2020-12-14 15:07:50 137 1

原创 Nginx在Linux下的安装

Nginx在Linux下的安装重新准备一台虚拟机作为服务器。比如IP地址为192.168.177.129环境准备(1)需要安装 gcc 的环境【此步省略】 yum install gcc-c++ (2)第三方的开发包。 PCREPCRE(Perl Compatible Regular Expressions)是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库。 yum

2020-12-08 16:39:15 58

原创 TK mybatis 逆向工程

配置文件pom.xml<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.7</vers

2020-11-29 23:06:18 896 1

原创 ES6

ECMAScript 6 简介ECMAScript 6.0(以下简称 ES6)是 JavaScript 语⾔的下⼀代标准,已经在 2015 年 6 ⽉正式发布 了。 其⽬标是使得 JavaScript 语⾔可以⽤来编写复杂的⼤型应⽤程序,成为企业级开发语⾔。① ECMAScript 和 JavaScript 的关系ECMAScript是JavaScript的规格JavaScript是ECMAScript的⼀种实现let和const命令ES6新增了let和const来声明变量,主要是解决var声

2020-11-13 16:32:16 71

原创 docker

安装Docker基于CentOS 7 安装Docker# 1、yum 包更新到最新yum update# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2# 3、 设置yum源yum-config-manager --add-repo https://download.docker.com/li

2020-11-05 17:51:29 70 1

原创 SpringCloud

系统架构演变1.集中式架构(单体架构)优点: 系统开发速度快 维护成本低 适用于并发要求较低的系统缺点: 代码耦合度高,后期维护困难 无法针对不同模块进行优化 无法水平扩展 单点容错率低,并发能力差2.垂直拆分当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分:优点: 系统拆分实现了流量分担,解决了并发问题 可以针对不同模块进行优化 方便水平扩展,负载均衡,容错率提高缺点: 系统间相互独立,会有很多重复开发工作,影响开发效率3.分布式

2020-10-31 19:51:28 106

CentOS5-Base-163.repo

CentOS5-Base-163.repo

2021-08-22

kubernetes-dashboard.yaml

kubernetes-dashboard的yaml文件

2021-06-10

空空如也

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

TA关注的人

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