自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring重点

文章目录Spring的生命周期第一大类:影响多个Bean的接口第二大类:只调用一次的接口Bean的作用域单例池、单例Bean、单例模式的区别:BenFactory与ApplicationContext的区别Bean线程安全问题Spring的生命周期spring会基于你当前的类生成BeanDefintion,然后实例化。 BeanDefinition描述了一个bean的实例,包括属性值,构造方法参数值和继承自它的类的更多信息,在Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDe

2021-06-11 23:07:04 320

原创 Web相关

文章目录互联网通信通信协议HTTP请求报文响应报文cookie&session互联网通信模型动态资源文件与静态资源文件获取的区别Http服务器介绍ServletServlet生命周期ServletConfigServletContextHttpServletRequest请求转发&请求重定向过滤器&拦截器&监听器互联网通信通信协议计算机通信的规则必须同时遵守才能完成通信。TCP/IP:TCP(Transmission Control Protocol)又叫传输控制

2021-06-10 00:10:59 288 6

原创 HashMap

文章目录HashMap的特点?转为红黑树的条件是什么?1.8后为什么加入红黑树?HashMap的结构HashMap是如何确定键值对的位置?如何解决Hash冲突?HashMap底层为什么要使用异或运算符?HashMap扩容为什么每次都是2的次幂?怎么扩容的?HashMap中的加载因子为什么是0.75,如果调整为1呢?为什么重写equals还要重写hashCode方法?Hashmap的结构,1.7和1.8有哪些区别?、为什么 HashMap 中 String、Integer 这样的包装类适合作为 key 键Ha

2021-06-09 16:29:03 284

原创 Java重点

文章目录面向对象的理解类型和类型之间的关系访问控制修饰符Object方法数组浅拷贝和深拷贝String类常用API装箱拆箱异常集合的原理IO流序列化&反序列化面向对象的理解在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动,所以程序=对象+消息。面向对象有三大特性,封装、继承、多态。封装就是将一类事物的属性和行为抽象成一个类,使其属性私有化,

2021-06-06 22:57:07 291 4

原创 常见多线程设计模式

文章目录同步模式两阶段终止保护性暂停固定运行顺序交替输出异步模式生产者消费者模式同步模式两阶段终止 public static void main(String[] args) throws InterruptedException { //监控线程 monitor = new Thread(() -> { while (true){ Thread current = Thread.currentThre

2021-06-03 20:22:14 222

原创 MySQL基础重点

文章目录SQL语句分类SQL语句执行顺序分组查询?分组函数结果集去重笛卡尔乘积现象连接查询的分类内连接外连接分页查询事务ACID隔离级别数据设计三范式SQL语句分类DQL:查询DML:数据库操作DDL:数据库定义,表结构修改TCL:事务DCL:数据库管理SQL语句执行顺序分组查询?比如一张学生表需要分别查询女生和男生的成绩,那就把男女各分为一组再计算。select SUM(grade),sex from student group by sex分组函数count 计数m

2021-06-01 21:38:01 172 1

原创 Java并发编程(二)

共享模型之无锁无锁解决线程安全问题使用原子整数interface Account { Integer getBalance(); void withdraw(Integer amount); /** * 方法内会启动 1000 个线程,每个线程做 -10 元 的操作 * 如果初始余额为 10000 那么正确的结果应当是 0 */ static void demo(Account account) { List<Thread> ts = new ArrayLi

2021-05-27 20:40:08 494 6

原创 Java并发编程(一)

文章目录基本概念进程与线程并发与并行基本概念进程与线程进程:可以视为程序的一个实例,线程的总体概念(管理指令,管理IO,管理内存)线程:一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给 CPU 执行,也是Java中最小的工作单元 。二者区别:进程基本上相互独立的,而线程存在于进程内,是进程的一个子集进程拥有共享的资源,如内存空间等,供其内部的线程共享。同一台进程通信:IPC不同进程通信:HTTP线程更轻量,线程上下文切换成本要比进程上下文切换低。进程切换和线程切换的

2021-05-19 19:04:48 248 2

原创 JVM原理

文章目录JVM是什么?内存结构图程序计数器(寄存器)虚拟机栈本地方法栈堆内存JVM是什么?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚 拟机上运行的目标代码(字节码),就可以在多种平台上.

2021-05-12 18:10:07 185

原创 MySQL高级

文章目录前言前言

2021-05-09 16:07:31 228 2

原创 音标

元音/e/: e/a/: a/ɔː/: oor,ore,or/ɔ/: o/I/: i/i/: 词尾y或ey/əː/: or,ir/ə/: 单独的a及词尾er/ei/: a,若e结尾且不发音/iə/: ear,eer,ea/ɔi/: oy,oi/ɛə/: eir,air/ʊ/: oo/ʊ:/: o,ou, oo/ʊə/: oor,our,ure/əʊ/: 单词结尾o/a:/: a,ar/ʌ/: o,u/ai/: i/au/: ou,ow...

2021-05-06 00:26:11 105

原创 分布式事务&本地事务

文章目录前言前言本地事务只能控制自己的回滚,控制不了其他服务的回滚。一般用SpringBoot的@Transactional() 但是有一个坑,当你设置了事务传播行为,在同一个对象内事务方法是失效的,因为事务是基于代理的,同对象动态代理都是同一个导致不能新建新的动态代理事务就设置失败了失败案例:解决方案:引用aop-starter后,使用aspectJ,开启AspectJ动态代理,原来默认使用的是jdk动态代理。主启动添加@EnableAspectJAutoProxy(exposeProx.

2021-04-29 14:39:53 653

原创 接口幂等性问题

文章目录前言什么是接口幂等性如何设计接口才能做到幂等呢?token机制数据库悲观锁数据库乐观锁数据库唯一约束redis set防重防重表全局请求唯一id前言现如今的系统架构大多都拆分为SOA,或者微服务分布式,而这样的架构避免不了服务之间调用,调用一般分为restful或者RPC通信。既然是通信,就很有可能中途挂掉,如果用户在支付一件商品时,网络抖动导致服务之间没有很好的处理就会产生多次提交数据不同步的严重问题!什么是接口幂等性接口幂等性就是要保证用户一系列操作结果必须是一致的,不会因为多次点击.

2021-04-29 13:52:30 151 1

原创 Feign远程调用丢失请求头问题

文章目录Feign远程调用问题丢失请求头问题Feign异步调用丢失请求头问题Feign远程调用问题丢失请求头问题feign底层构造请求时会遍历请求拦截器然后通过请求模板构造新的请求,新的请求是不带之前请求数据的。解决方法就是自己构造个拦截器把老的请求数据保存起来。package com.atguigu.gulimall.order.config; import feign.RequestInterceptor;import feign.RequestTemplate;import .

2021-04-26 22:22:14 116

原创 RabbitMQ消息队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录什么是MQ?MQ(Message Quene)MQ有哪些RabbitMQ简介核心概念一、消息模型直连任务模型(work)广播模型(fanout)路由模型(Routing)二、WEB端操作docker安装RabbitMQ`ip:15672` 访问web端二、SpringBoot整合RabbitMQAmqpAdmin使用RabbitTemplate使用RabbitListener&RabbitHandler接收消息消息确认机制发

2021-04-25 00:45:45 216

原创 分布式session

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言分布式session解决方案SpringSession整合redis配置前言在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当会话过期或被放弃后,服务器将终止该会话。正常情况下session不可跨域,它有自己的作用范围如果在分布式架构的情况下,

2021-04-22 00:11:53 116 1

原创 SSO单点登录的简单实现

文章目录前言实现流程登录服务器`sso.com`登录页 `client1.com`客户端成功页面前言很早期的公司,一家公司可能只有一个Server,慢慢的Server开始变多了。每个Server都要进行注册登录,退出的时候又要一个个退出。用户体验很不好!你可以想象一下,上豆瓣 要登录豆瓣FM、豆瓣读书、豆瓣电影、豆瓣日记…真的会让人崩溃的。我们想要另一种登录体验:一家企业下的服务只要一次注册,登录的时候只要一次登录,退出的时候只要一次退出。怎么做?接下来就实现单点登录的功能。流程图实现开源s

2021-04-21 23:32:38 427

原创 分布式锁与缓存

文章目录一、缓存1.缓存使用2.Redis实现缓存功能3.缓存存在的问题二、本地锁三、分布式锁四、SpringCache一、缓存1.缓存使用为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而db承担数据落盘工作。哪些数据适合放入缓存?即时性、数据致性要求不高的访问量大且更新频率不高的数据(读多,写少)举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果发布一个商品,买家需要5分钟才能看到新的商品-般还是可以接受的。2..

2021-04-18 00:05:48 226

原创 异步编排CompletableFuture1.8新特性

文章目录一、线程池初始化线程的4种方式:开发中为什么使用线程池??二、异步编排CompletableFuture异步编排1.创建异步对象2.handle 方法3.线程串行化方法4.两任务组合 - 都要完成5.两任务组合 - 一个完成6.多任务组合一、线程池初始化线程的4种方式:继承Thread public static void main(String[] args) { System.out.println("main....start.."); T.

2021-04-17 00:32:04 225

原创 Nginx+网关+微服务

文章目录架构图一、修改Hosts二、Nginx配置文件三、Nginx+网关配置四、Nginx动静分离架构图一、修改Hosts访问gulimall.com===虚拟机ip地址二、Nginx配置文件三、Nginx+网关配置1.修改nginx/conf/nginx.conf,将upstream映射到我们的网关服务 upstream gulimall{ # 88是网关 server 192.168.56.32:88; }2.复制一份ngin

2021-04-10 22:53:32 3592 2

原创 ES的Java API 操作

文章目录前言一 、导入依赖客户端对象索引操作文档操作高级查询前言Elasticsearch 软件是由 Java 语言开发的,所以也可以通过 Java API 的方式对 Elasticsearch服务进行访问一 、导入依赖注意点:导入依赖的版本一定要和自己安装ES版本一致!!!<dependencies> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>el

2021-04-10 22:13:50 3668

原创 Elasticsearch分布式全文搜索引擎

文章目录一、Elasticsearch 是什么?二、ES安装1、安装软件2、启动失败问题解决三、ES入门一、数据格式二、索引三、文档操作四、映射操作五、高级查询一、Elasticsearch 是什么?Elasticsearch是一个基于Lucene的搜索服务器,简称为ES。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。二、ES安装Elasti

2021-04-07 23:00:40 393

原创 idea设置服务占用内存上限

设置上限100mb

2021-04-06 00:34:12 2083

原创 SpringBoot常用配置

文章目录配置1.开启日志打印2.jackson返回时间格式重置配置1.开启日志打印logging: level: com.zng.gulimall: debug2.jackson返回时间格式重置spring: jackson: date-format: yyyy-MM-dd HH:mm:ss

2021-04-05 18:21:50 64

原创 Vue父子组件

父子组件要实现功能:点击左侧,右侧表格对应内容显示。绑定node-click事件,<el-tree :data="menus" :props="defaultProps" node-key="catId" ref="menuTree" @node-click="nodeClick" ></el-tree>子组件category给父组件发送一个事件,携带上数据;nodeClick(data,Node,component){ console.lo

2021-04-02 13:12:06 102

原创 JSR303数据校验

JSR是什么JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于 JSR-303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 .

2021-04-01 00:15:50 185

原创 跨域解决方法

为什么会出现跨域问题出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)跨域:当一个请求url的协议、域名、端口三者之间任意一

2021-03-28 23:24:22 95

原创 ES6

前后端“ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。ECMA Script,JavaScript的语言标准。”var 声明的变量往往会越域, let 声明的变量有严格局部作用域var可以多次声明同一变量,let会报错var定义之前可以使用,let定义之前不可使用。(变量提升问题)<!DOCTYPE html><html lang=

2021-03-26 23:56:36 92

原创 最新版idea的RunDashboard怎么显示出来

最新版不用改xml文件了按以下步骤就行这样就开启RunDashboard了

2021-03-24 15:57:19 515

原创 Docker常用命令

version #查看版本dockr 命令 --help #帮助命令images #查看本地所有镜像images -a #查看镜像详细信息images -aq #查看镜像idinfo #显示docker的系统信息,包括镜像和容器的数量inspect 容器id #查看元数据search 镜像名 #查找镜像search 镜像名--filter=STARS=3000 #过滤3000以上的pull 镜像名[:tag] #下载 不指定版本默认下载最新ps #列出所有运行的容器 dock

2021-03-22 11:35:18 70

原创 基于SpringCloudAlibaba模拟商城下单功能

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、功能介绍二、使用步骤1.引入库2.读入数据总结前言适合刚学完Alibaba框架的同志,练练手加深印象。一、功能介绍客户下订单---->减少商品库存---->扣相应的商品余额---->最后修改订单的状态二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimpo

2021-03-19 23:19:09 313

原创 Linux版Nacos集群和持久化配置

Nacos支持三种部署模式 https://nacos.io/zh-cn/docs/deployment.html单机模式 - 用于测试和单机试用。集群模式 - 用于生产环境,确保高可用。多集群模式 - 用于多数据中心场景。Nacos集群配置环境准备:64 bit OS Linux/Unix/Mac,推荐使用Linux系统。64 bit JDK 1.8+Maven 3.2.x+Nacos1.1.4 [下载](https://github.com/alibaba/nacos/tags?a

2021-03-18 00:16:07 201

原创 常用方法

获取系统当前时区 public static void main(String[] args) { ZonedDateTime zbj = ZonedDateTime.now(); System.out.println(zbj);//2021-03-15T15:48:52.214+08:00[Asia/Shanghai] }

2021-03-15 15:49:18 55

原创 Springboot整合mybatis的注意项

1.注意包命名,最好不要以.的方式,容易出错2.在pom文件加上<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**

2021-03-07 17:43:03 86

原创 SpringBoot遇到的坑@Qualifier报红的问题

今天写项目的时候@Qualifier一直报红,排查半天后面才知道原来是idea生成项目的时候把主配置的类放在一个包中导致默认包结构扫描发生改变,扫描不到你定义的组件,具体可以去看看SpirngBoot默认包结构规则。解决方法:把主配置类放在一级包下就行!!!或者在主配置类添加@ComponentScan(指定扫描路径)...

2021-03-04 12:11:11 1930 1

转载 templates资源不能直接访问

**SpriongBoot创建的项目,在resources -> templates下的资源是不能直接访问的,没有开放访问权限。这是因为templates文件夹,是放置模板文件的,因此需要视图解析器来解析它。所以必须通过服务器内部进行访问,也就是要走控制器 -> 服务 -> 视图解析器这个流程才行。同时,存在安全问题。比如说,你把你后台的html文件放到templates,而这个文件夹对外又是开放的,就会存在安全隐患。**这里提供两种可以方式访问templates模板下的资源文件 

2021-02-25 17:40:19 5465

转载 过滤,拦截,监听器三者区别

1、过滤器:依赖于servlet容器;在实现上基于函数回调,可以对几乎所有请求进行过滤;缺点是一个过滤器实例只能在容器初始化时调用一次;使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改 HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等。2、拦截器:依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架;在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用;缺点是只能对co

2021-02-14 20:10:41 535 1

原创 SpringMVC概述

什么是MVC?MVC:modal(模型),View(视图),Controller(控制器)。是将数据,逻辑,显示分离出来处理的,是一种设计模式。MVC主要作用降低了视图和业务层的双向耦合。SpringMVC的特点:简单易学,轻量级。与Spring兼容性好,无缝连接约定优于配置。功能强大:数据验证,本地化…简洁灵活。SpringMVC框架像其他MVC框架一样以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能,DispatcherServlet是一个实际的Servlet(它继

2021-02-08 23:52:41 236 2

原创 关于MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException这个错误

-这个错误出现的原因一般是为sql语句传入多个参数没有封装成对象或者Map集合导致MyBatis识别不出你对应的参数解决方案:1、用注解@Param2、改用#{index}是第几个就用第几个的索引,索引从0开始...

2021-02-05 17:32:11 1219

原创 Mybatis

MybatisMybatis是一款优秀的持久层框架(模版呗)它对JDBC所有的数据库操作都进行了封装,你基本只要关注sql语句本身就完事了。Mybatis默认提交事务简单化的生命周期:开始-读取主配置文件(Mybatis-config.xml)-SqlSessionFactoryBuilder-数据库连接池SqlSessionFactory-连接到连接池的一个请求SqlSession-映射文件Mapper-结束#{}预编译,无需考虑参数的类型${}被sql注入,必须考虑了查询的字段名和pojo属

2021-01-31 18:38:32 48

空空如也

空空如也

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

TA关注的人

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