![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SpringBoot+Mybaits3成长笔记
文章平均质量分 60
Springboot,mybaits3的学习和成长过程
阿门之恋
这个作者很懒,什么都没留下…
展开
-
Elasticsearch 浏览器查询工具elasticsearch-head的使用
elasticsearch head 浏览器插件原创 2023-02-01 09:01:45 · 1403 阅读 · 0 评论 -
Jmeter使用
jemter 压力测试 常用功能原创 2022-07-27 21:38:59 · 862 阅读 · 0 评论 -
JMeter BeanShell的基本用法 一下语法只能在beanshell中使用
Jmeter beanshell简单使用原创 2022-07-01 20:11:31 · 415 阅读 · 0 评论 -
【Springboot2.x】拦截器
拦截器原创 2022-06-01 22:50:02 · 245 阅读 · 0 评论 -
【Springboot2.x】通过参数选择返回xml或json数据或自定义返回值类型自定义消息转换器
一、背景此处用到了spring的内容协商功能二、配置过程2.1 添加依赖<!-- 用于解析xml--> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <原创 2022-05-25 09:08:57 · 591 阅读 · 0 评论 -
【Springboot2.x】静态资源的原理
一、背景二、主要配置类 WebMvcAutoConfiguration查看WebMvcAutoConfigurationv是否生效WebMvcAutoConfigurationv 下的另一个重要配置类 WebMvcAutoConfigurationAdapter构造方式各个参数说明★ 如果只有一个构造方法,构造方法中的参数默认是从容器中拿。通过这一步,web中需要的资源都赋值进来。// ResourceProperties 获取spring.resources配置的信息// WebM原创 2022-04-09 09:36:19 · 169 阅读 · 0 评论 -
【Springboot2.x】源码分析-@SpringBootApplication+AutoConfiguration自动配置流程
一、源码分析过程@SpringBootApplicationpublic class SpringBoot2xApplication { public static void main(String[] args) { ConfigurableApplicationContext run = SpringApplication.run(SpringBoot2xApplication.class, args); Map<String, Cat> bean原创 2022-04-02 07:58:36 · 899 阅读 · 0 评论 -
【Springboot2.x】自动装配,配置的2种方式
一、背景二、代码2.1 第一种:@Component+@ConfigurationProperties(prefix = “myperson”)bean文件@Component@ConfigurationProperties(prefix = "myperson")@Data@ToStringpublic class Person { private String name; private String age;}配置文件 application.properties原创 2022-03-29 09:27:36 · 596 阅读 · 0 评论 -
【Springboot2.x】导入组件的几种方式
一、代码1.1 @Configuration+@Bean/*** * @Configuration 本身也是一个组件 * proxyBeanMethods = true表示单例 默认是true * proxyBeanMethods = false 不检查单例,创建bean是更快 */@Configuration(proxyBeanMethods = false)public class Animal { @Bean User User01() { return原创 2022-03-28 20:07:00 · 604 阅读 · 0 评论 -
conflicts with existing, non-compatible bean definition of same name and class
一、 问题Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘remoteLiftRodHttpService’ for bean class [com.tiandy.easy7.third.part.device.adapter.vehicle.gate.dr.service.impl.RemoteLiftRodHttpS原创 2021-12-08 20:10:14 · 12163 阅读 · 0 评论 -
Idea 常用代码块
一、背景在开发过程有一些常用的代码块,为了方便我们可以把它配置成模板,利用快捷短句快速构建,可以为我们省去很多重复的开支。二、常用代码块2.1 异常处理快捷键tryc代码块try { $end$} catch (Exception e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw, true); e.printStackTrace(pw); p原创 2021-09-28 21:29:57 · 575 阅读 · 0 评论 -
spring-cloud和spring-boot版本的选择
前言spring-cloud作为当今最流行的分布式服务架构解决方案,被广泛使用,那该如何选择spring-cloud和pring-boot的版本呢,是越新越好吗?答案当然不是,spring-cloud的更新时非常快速,但是spring-boot的更新就没有那么频繁了,更重要有些项目是老项目,我们需要照顾到老项目的应用。spring-cloud的版本选择有需要照顾到至少3个方面的版本spring-cloud的版本spring-boot的版本jdk的版本他们3者该如何选择呢,首选我们登录到sp原创 2021-09-10 10:08:37 · 1103 阅读 · 0 评论 -
IDEA中代码无故报红解决方法
IDEA中代码无故报红解决方法方法一:maven reimport方法二:file->invalidate caches /restart方法三:gradle项目,把build.gradle依赖项任意一项删掉再恢复,让gradle重新导入方法四:删除.idea,重新建立工程方法五:重装IDEA...原创 2021-09-10 10:07:12 · 1118 阅读 · 0 评论 -
订单流程和秒杀流程
一、背景在一个商城中,订单模块是最复杂的,它是一个商城的中心,它与商品信息,用户信息,优惠券信息,积分信息,运费信息,库存信息都有关联。二、订单流程2.1 确认订单点击确认订单按钮后,接口需要返回订单有关的所有数据,由于这个接口请求的数据比较大所以用异步请求。注意:由于feign调用的时候会丢失头信息,所以在进行feign调用之前要重新把请求头设置一遍。/** * 订单确认页返回需要用的数据 * @return */ @Override public原创 2021-09-01 07:54:32 · 873 阅读 · 0 评论 -
Maven的配置
一、maven安装下载地址:https://maven.apache.org/download.cgi选择需要安装的maven一般选择比较3.5以后的版本。下载后直接解压。二、maven的配置文件位置:apache-maven-3.6.0\conf\settings.xml修改仓库位置 <localRepository>D:\tools\repository</localRepository>修改仓库地址,或者所镜像<!-- 阿里云仓库 -->原创 2021-08-31 07:55:09 · 67 阅读 · 0 评论 -
idea安装 PlantUML插件
一、背景程序员之间进行交流时,最主要的图就是类图,这个工具就是实现类图的IDEAL插件工具二、安装步骤下载插件安装插件配置插件2.1 下载插件2.2 安装插件2.3 环境变量的配置第一步 添加环境变量GRAPHVIZ_HOMEGRAPHVIZ_HOMED:\ideal\graphviz-2.38\第2步 修改Path环境变量,在Path中最后添加一下内容 %GRAPHVIZ_HOME%bin第3步 在dos下用 dot -version 测试一下是否安装成功原创 2021-08-31 07:53:28 · 2133 阅读 · 0 评论 -
谷粒商城-VUE的快速开发
一、ES6ECMAScript 是标准javascript是实现VS环境搭建之前写过了,需要在VScode中安装如下插件:Auto Close TagAuto Rename TagChineseESlintHTML CSS SupportHTML SnippetsJavaScript ES6Live Serveropen in browerVetur33Vue 2Snippets 语法提示谷歌浏览器中安装插件Vue Devtools一、ES6的新特性打开VSCode—打开原创 2021-08-31 07:52:12 · 220 阅读 · 0 评论 -
VUE与IDEL解决跨域问题
前言跨域是浏览器对ajax请求的限制跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对js施加的安全限制。(ajax可以)同源策略:是指协议,域名,端囗都要相同,其中有一个不同都会产生跨域; 跨域请求流程:非简单请求(PUT、DELETE)等,需要先发送预检请求 -----1、预检请求、OPTIONS ------> <----2、服务器响应允许跨域 ------浏览器 | |原创 2021-08-31 07:51:06 · 215 阅读 · 0 评论 -
谷粒商城-服务1
一、项目简介1、项目架构图2、项目划分图3、环境搭建1)安装linux虚拟机下载&安装Virtualbox https://www.virtualbox.org/wiki/Downloads注意:要开启CPU虚拟化2)安装vagrant下载地址:https://www.vagrantup.com/downloadsvagrant的镜像库:https://app.vagrantup.com/boxes/search输入vagrant init centos/7,即可原创 2021-08-31 07:49:55 · 1880 阅读 · 0 评论 -
谷粒商城-服务2
接口文档https://easydoc.xyz/s/78237135/ZUqEdvA4/VcZDIGmW15、SPU与SKU概念:SPU(Standard Product Unit):标准化产品单元。SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性item更多的是用来指“单品”的概念,注意的是单品也是一个抽象概念SKU=stock keeping unit(库存量单位) SKU即库存进出计量的单位spu的属性叫基本属性,每个spu基本属性原创 2021-08-31 07:49:29 · 497 阅读 · 0 评论 -
谷粒商城-服务3
29、商品上架和ES的存储模型选择上架概念:我们把商品存入es的过程叫上架,只有上架的商品才能被前台检索es的数据保存位置:内存对es的使用我们不能把所有的数据都放在进来,因为内存时很贵的,我们需要有用的信息放进来,商品es的存储模型方案:模型一:占用空间多{ skuId:1 spuId:11 skuName:华为xxx attr:[ { 尺寸:5 颜色:红色 。。。 。。。 } ]}模型二:查询时间长sku索引{}spu索引{}30、nested原创 2021-08-31 07:49:03 · 938 阅读 · 0 评论 -
Tomcat调优
Tomcat之JVM内存查看tomcat7的user配置修改tomcat 的config文件夹下的tomcat-users.xml 文件<?xml version='1.0' encoding='utf-8'?><tomcat-users><!-- 访问Server Status和Manager App的角色 --><role rolename="manager-gui"/><!-- 访问Host Manager 的角色 -->&l原创 2021-08-22 21:40:43 · 1641 阅读 · 3 评论 -
利用hosts文件修改域名映射实现Nignx反向代理
windos下查看dns地址ipconfig -all域名解析的原理域名解析是首先会在本机的localhost中查找域名解析规则,如果没有会通过本地配置的域名服务器地址进行域名解析。下面我们通过配置localhost进行域名访问。第一步:路径:C:\Windows\System32\drivers\etc...原创 2021-08-22 21:40:12 · 5036 阅读 · 1 评论 -
Nginx 实现动静分离
一、背景我们在访问微服务时,如果动态请求和静态页面的请求放在一个微服务中,就会造成线程被静态资源过多占用的问题,从而降低接口的吞吐量。改进方案:我们把所有的静态文件(html,css,图片)等放在nginx目录下,把动态的接口放在微服务下,设定一个规则,静态文件直接由nginx返回,接口由nginx转到响应的微服务处理。二、步骤规则:将所有项目的静态资源文件都放在nginx里面nginx通过路径映射:/static/** 所有请求都由nginx直接返回2.1 在nginx的html文件夹下新建原创 2021-08-19 07:13:55 · 196 阅读 · 0 评论 -
如何在一个Ideal中启动多个相同的服务以实现负载均衡
背景本方法完全是为了在本地测试服务在均衡,或者分布式锁使用的。一、步骤1.1 第一步:在service中 copy configuration1.2 设置不同的启动端口--server.port=10003原创 2021-08-19 07:13:42 · 355 阅读 · 0 评论 -
Elasticsearch的基本使用
官网:https://www.elastic.co/cn官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html官方中文:https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html社区中文:https://es.xiaoleilu.com/index.htmlhttp://doc.codingdict.c原创 2021-08-19 07:13:19 · 823 阅读 · 0 评论 -
缓存与分布式锁
一、缓存1.1 那些数据适合缓存1)即时性,数据一致性要求不要的数据2)访问量大且更新频率不高的数据(读多,写少)举例::电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果发布一个商品,买家需要 5 分钟才能看到新的商品一般还是可以接受的。注意:在开发中,凡是放入缓存中的数据我们都应该指定过期时间,使其可以在系统即使没有主动更新数据也能自动触发数据加载进缓存的流程。避免业务崩溃导致的数据永久不一致问题。1.2 缓存的流程1.2 本地缓存实例原创 2021-08-19 07:13:04 · 379 阅读 · 0 评论 -
Scheduled定时任务的使用
一、cron表达式语法:秒 分 时 日 月 周 年(Spring 不支持)官方网站:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html特殊字符:,:枚举;(cron=“7,9,23 * * * * ?”):任意时刻的 7,9,23 秒启动这个任务;-:范围:(cron=“7-20 * * * * ?”):任意时刻的 7-20 秒之间,每秒启动一次*:任意;指定位置的任意原创 2021-08-19 07:12:46 · 2260 阅读 · 0 评论 -
使用Redission信号量做库存
背景在秒杀服务中,库存一般是放在redis缓存中的,这里有一个信号量工具,类似于GUC中的CountDownLatch 人走关门的那个列子。 @Autowired private RedissonClient redissonClient; /** * redis 信号量的使用,类似与JUC中的人走了关门那个工具类 * 设置一个总数为10的信号量 */ @Test public void redisXihaoliang(){ //原创 2021-08-19 07:11:45 · 1887 阅读 · 0 评论 -
spring cloud 学习总结
一、spring cloud 要掌握的主要技术1.1 spring cloud组件1.2 接口幂等性服务中的所有接口都是幂等的,加锁 乐观锁 悲观锁我们用的是令牌也可以用分布式锁1.3 本地事务和分布式事务seata 组件适用于后台管理系统高并发我们用的rabbitmq 的最终一致性1.4 性能和压力测试jmeter1.5 缓存和分布式锁spring-cashspring-redission 分布式锁的应用 幂等性,1.6 ElastcSearch的使用搜索时把数据存在El原创 2021-08-19 07:11:18 · 110 阅读 · 0 评论 -
rsync实现windows和windows之间的数据同步
一、背景二、安装步骤2.1 服务端安装第一步:用管理员身份打开第二步:用户名:win_rsync密码:test123456原创 2021-08-19 07:11:03 · 390 阅读 · 0 评论 -
谷粒商城-服务4(K8s部署篇)
一、K8s(KubeSphere)中文官网:https://kubernetes.io/zh/k8s 是分布式部署管理工具,用于容器的部署和编排Kubernetes 简称 k8s。是用于自动部署,扩展和管理容器化应用程序的开源系统。中文官网:https://kubernetes.io/zh/中文社区:https://www.kubernetes.org.cn/官方文档:https://kubernetes.io/zh/docs/home/社区文档:http://docs.kubernetes.原创 2021-08-19 07:10:24 · 1915 阅读 · 3 评论 -
mysql集群
一、集群的目标二、集群的基本形式分布式:实例redis存储数据,可以使得数据扩容node1中我们存储了1-10000的数据,并且我们保存了10000-20000的备份node2中我们存储了10000-20000的数据,并且我们保存了30000-40000的备份node3中我们存储了30000-40000的数据,并且我们保存了1-10000的备份三、mysql的集群3.1 集群原理3.2 企业中常用的数据库解决方案3.2.1 MySQL-MMM 主主复制方式MySQL-MMM 是原创 2021-08-14 09:00:43 · 7115 阅读 · 0 评论 -
RabbitMQ 集群
一、集群形式RabbiMQ 是用 Erlang 开发的,集群非常方便,因为 Erlang 天生就是一门分布式语言,但其 本身并不支持负载均衡。 RabbitMQ 集群中节点包括内存节点(RAM)、磁盘节点(Disk,消息持久化),集群中至少有 一个 Disk 节点。1.1 普通模式(默认)对于普通模式,集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节 点。对于消费者来说,若消息进入 A 节点的 Queue 中,当从 B 节点拉取时,RabbitMQ 会 将消息从 A 中取出,并经过 B 发原创 2021-08-13 21:16:23 · 163 阅读 · 0 评论 -
Redis 集群
一、redis 集群形式1.1 数据分区方案客户端分区客户端分区方案 的代表为 Redis Sharding,Redis Sharding 是 Redis Cluster 出来之前,业 界普遍使用的 Redis 多实例集群 方法。Java 的 Redis 客户端驱动库 Jedis,支持 Redis Sharding 功能,即 ShardedJedis 以及 结合缓存池 的 ShardedJedisPool。 优点不使用 第三方中间件,分区逻辑 可控,配置 简单,节点之间无关联,容易 线性扩展,灵原创 2021-08-12 07:21:06 · 198 阅读 · 0 评论 -
k8s删除节点和重新添加
在master上删除2个节点kubectl drain k8s-node2 --delete-local-data --force --ignore-daemonsetskubectl delete node k8s-node2kubectl drain k8s-node3 --delete-local-data --force --ignore-daemonsetskubectl delete node k8s-node3## 在node节点把node脱离出来kubeadm reset原创 2021-08-07 19:20:39 · 531 阅读 · 0 评论 -
Sleuth+Zipkin 服务链路追踪
官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.1.3.RELEASE/single/spring-cloud-sleuth.html一、为什么要用链路追踪1)为了更好的定位异常2)分析耗时操作,配合sentinel进行限流等优化二、基本术语Span(跨度):基本工作单元,发送一个远程调度任务 就会产生一个 Span,Span 是一个 64 位 ID 唯一标识的,Trace 是用另一个 64 位 ID原创 2021-07-24 19:53:47 · 218 阅读 · 0 评论 -
SpringCloud Alibaba-Sentinel的使用
一、简介官网:https://gitee.com/rmlb/Sentinel/wikis/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8?sort_id=34194191.1 熔断降级限流什么是熔断A 服务调用 B 服务的某个功能,由于网络不稳定问题,或者 B 服务卡机,导致功能时间超长。如果这样子的次数太多。我们就可以直接将 B 断路了(A 不再请求 B 接口),凡是调用 B 的直接返回降级数据,不必等待 B 的超长执行。 这样 B 的故障问题,就不会级联影响到 A原创 2021-07-24 16:24:37 · 900 阅读 · 0 评论 -
本地事务与分布式事务
一、本地事务1.1 事务的基本性质数据库事务的几个特性(ACID):原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是 ACID; 原子性:一系列的操作整体不可拆分,要么同时成功,要么同时失败 一致性:数据在事务的前后,业务整体一致, 比如:转账。A:1000;B:1000; 转 200 事务成功; A:800 B:1200 隔离性:事务之间互相隔离。 持久性:一旦事务成功,数据一定原创 2021-08-22 21:39:20 · 974 阅读 · 0 评论 -
接口幂等性
一、含义幂等性:1次提交和100次提交的最终结果是一样的。1的1次幂和1的100次幂的结果都是1二、什么是幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条...,这就没有保证接口的幂等性。 二、哪些情况需要防止用户多次点击按钮用户页面回退再次原创 2021-07-15 07:20:47 · 196 阅读 · 0 评论