自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试题亲身经历

参考

2022-06-29 11:13:20 216 1

原创 查表关键字

面试题

2022-06-09 13:55:13 188

原创 forEach与for循环的区别(性能与循环跳出)

面试题

2022-06-08 17:39:41 1762

原创 idea中处理依赖注入爆红问题

新手亲身经历

2022-06-08 17:28:45 2140 1

原创 数据生成html(freemaker),html转pdf(itext),img xml

新手工作总结

2022-06-08 15:47:15 393

原创 2022复习笔记

Spring笔记1.Spring是轻量级的开源的javaEE框架2.Spring可以解决企业应用开发的复杂性3.Spring有两个核心部分:IOC和AOP(1):IOC控制反转 把创建对象过程交给Spring进行管理(2):AOP:面向切面编程 不修改源码进行功能增强4.Spring特点(1)方便解耦 简化开发(2)Aop编程支持(3) 方便程序测试(4)方便和其他框架整合(5)方便进行事务操作(6)降低API开发难度IOC容器:(1)IOC底层原理.

2022-02-18 17:06:02 556

原创 Redis架构设计应用实践

Redis主从复制单个Redis支持的读写能力还是有限的,此时我们可以使用多个redis来提高redis的并发处理能力,这些redis如何协同,就需要有一定的架构设计,这里我们首先从主从(Master/Slave)架构进行分析和实现.基本架构redis主从架构如图所示:其中,master负责读写,并将数据同步到salve,从节点负责读操作.主从同步原理分析Redis的主从结构可以采用一主多从结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。Redis全量同步:

2022-02-18 15:03:57 102

原创 Redis持久化,事务以及架构实践

核心知识点SpringBoot 中AOP方式应用Redis技术Redis 持久化机制以及持久化方式Redis 事务处理机制和常用指令应用。常见问题分析为什么AOP方式应用redis?(优势-简单,劣势-不灵活)如何AOP方式应用redis?(说说步骤)Aop方式应用Redis时如何进行序列化等方式定制?Spring工程中用于描述应用缓存的切入点注解你了解哪些?(@Cacheable,@CachePut,…)Spring工程中假如需要基于AOP方式整合缓存应用需要在配置上加什么注解

2022-01-13 09:24:13 80

原创 Java中redis操作实践进阶

核心知识点基于业务定制RedisTemplate对象?基于redis实现单点登录系统?(在redis记录用户状态)基于redis实现某个活动的投票系统?SpringBoot工程中整合redis应用实践常见问题分析为什么要定制RedisTemplate对象?基于redis存储用户状态时,你使用的数据类型是什么?(hash类型)通过redis存储登录状态,你觉得有什么弊端?(检查用户登录状态需要查询redis)基于redis实现某个活动的投票系统,你使用的数据类型是什么?(Set类型

2022-01-13 09:16:31 80

原创 Jedis与RedisTemplate应用实践

核心知识点1.工程结构分析及项目创建2.Jedis及JedisPool基本应用实践3.RedisTemplate对象应用实践分析4.StringRedisTemplate对象应用实践分析常见问题分析1.Jedis常用API有哪些?(Jedis,JedisPool,JedisPoolConfig)2.Jedis如何存储POJO对象到redis?(将对象转换为json串,将对象以Hash形式进行存储)3.RedisTemplate 对象默认的序列化方式是什么?(JDK方式)4.Red

2022-01-11 08:56:24 186

原创 逗站业务接口文档

1.使用单点登录的代码,完成页面的登录:把站名改成自己的名字 逗站,以及下面的所有东西2.完成用户页面的各大功能,首页、推荐、资料、收藏、创作历程。以及完成头像的上传和删除 ,更改用户名,上传作品。 粉丝、关注,评论:...

2022-01-09 10:06:25 173

原创 Redis常用数据类型

简介概述Redis作为一种key/value结构的数据存储系统,为了便于对数据进行进行管理,提供了多种数据类型。然后,基于指定类型存储我们项目中产生的数据,例如用户的登陆信息,购物车信息,商品详情信息等等。常用数据类型Reids中基础数据结构包含字符串、散列,列表,集合,有序集合。工作中具体使用哪种类型要结合具体场景。String类型操作实践字符串类型是redis中最简单的数据类型,它存储的值可以是字符串,其最大字符串长度支持到512M。基于此类型,可以实现博客的字数统计,将日志不断

2022-01-09 09:50:12 80

原创 Redis缓存入门

简介背景我们现在的项目架构中,基本上是Web服务器(Tomcat)和数据库独立部署,独占服务器资源,随着用户数的增长,并发读写数据库,会加大数据库访问压力,导致性能的下降,严重时直接导致系统宕机,例如:此时,我们可以在Tomcat同服务器上中增加本地缓存,并在外部增加分布式缓存,缓存热门数据。也就是通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。例如:基于这样的一种架构设计,于是类似redis的一些分布式数据库就诞生了。1.java运行基于JVM...

2022-01-07 11:53:12 692

原创 Docker数据管理实践

在容器中管理数据主要有两种方式:1.数据卷()2.挂载主机目录(Bind mounts)1.数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一存在即使容器被删除2.数据卷操作第一步:创建数据卷,例如:docker volume create container-vol第二步:查看所有数据卷,例如:docker volume ls查看指定 数据卷 的信息docker volume inspect co...

2022-01-06 11:18:06 427

原创 Docker技术简介

介绍1.Docker是一个虚拟化平台,诞生于2013年初,基于Google公司的Go语言进行实现,可以通过虚拟化的方式2.现阶段的所有的软件安装都是基于Docker进行实现,安装mysql过程不简单,要配置安装源,安装依赖包Docker 核心对象镜像(Image)Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),镜像可以打包应用的运行环境以及应用程序,可以通过 Docker 启动这个镜像,进而将应用程序在一个容器中启动运行起来。在 Docker 镜像

2022-01-05 17:09:07 1694

原创 【无标题】

资源服务器通过什么样的方式获取用户的行为信息?(AOP)资源服务器通过什么方式将日志对象传给系统服务?(feign)常见bug400异常: 请求参数不合法(参数个数,类型 格式)401异常: 认证失败?(提交的数据不正确)403异常: 没有资源访问权限?(说明用户为)...

2022-01-05 09:20:07 1258

原创 SSO系统颁发令牌及资源服务常见bug

400异常,例如

2022-01-04 09:37:38 262

原创 SSO系统中的登录逻辑基本实现02

核心知识点定义数据访问逻辑对象(UserMapper)定义用户信息远程调用Feign接口(RemoteUserService~基于此接口调用sso-system服务中的用户信息)基于Security规范定义用户业务逻辑服务对象(UserDetailsServiceImpl~调用RemoteUserService获取和封装用户信息)定义用户认证基本配置类(SecurityConfig~配置密码加密对象,认证规则,以及登录成功或失败的处理方案)实现自定义登录逻辑测试(校验登录正确账号和错误账户下服

2021-12-31 09:21:08 246

原创 单点登录系统01

理论重点单点登录系统诞生的背景。 Java中单点登录系统解决方案。 单点登录系统(SSO)中的服务划分及关系设计。 单点登录系统中父工程的创建及初始化。 系统基础服务(sso-system)工程的创建及基本业务实现。 Springboot中默认连接池用的是HikaniCP java中连接池设计需要遵循逻辑的数据源规范是谁(javax.sql.DataSource) 都有什么设计模式:单例模式对象唯一,享元模式共享对象,桥接模式建立连接,门面(slf4j)记录日志常见问题分析为什么

2021-12-30 09:19:49 721

原创 sentinel限流降级

1.降级是指:服务在访问的过程中发生了阻塞,那么这个时候就选择抛出异常结束这个服务,这就叫降级.2.慢调用比例是指:请求数超过所设置的数量后,平均响应时间超过设定的毫秒数的30%,则对请求进行熔断,熔断时长为你所设置的值, 所设置的秒后恢正常3.Sentinel异常处理:系统提供了默认的异常处理机制,当默认处理机制不满足用户的需求时那么就可自定义,定义方式上可以直接或间接实现BlockEceptionHandler接口,并将对象交给Spring容器管理面试分析4. 为何降级熔断:让外部应用停

2021-12-27 20:07:07 898

原创 Sentinel降级应用实践

概述除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException)。我在一个地方获取不到 有意义的东西 这

2021-12-27 18:48:19 193

原创 7网关

网关简介背景分析我们知道,一个大型系统在设计时,经常会被拆分为很多个微服务。那么作为客户端要如何去调用 这么多的微服务呢?客户端可以直接向微服务发送请求,每个微服务都有一个公开的URL,该URL可以直接映射到具体的微服务,如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的架构,会存在着诸多的问题,例如,客户端请求不同的微服务可能会增加客户端代码或配置的复杂性。还有就是每个服务,在调用时都需要独立认证。并且存在跨域请求,也在一定程度上提高了代码的复杂度。基于微服务架构中的

2021-12-27 10:30:07 86

原创 spring课程常用注解

@Entity:用于表示实体类@table:当实体类与其映射的数据库表明@column:当实体类的属性与其映射的数据的列不同是需要@GeneratedValue:用于标记主键的生成策略,通过strategy属性指定@Id用于标记声明一个实体类的属性映射为数据库的主键列springData理念为Nosql数据库提供类似Spring对 por即使存储库Repos基本方法名称命名规则查询findBy(关键字)SpringBoot大大简化了Spring 设置...

2021-12-25 12:25:32 575

原创 06-Sentinel限流熔断

Sentinel简介背景分析在我们日常生活中,经常会在淘宝、天猫、京东、拼多多等平台上参与商品的秒杀、抢购以及一些优惠活动,也会在节假日使用12306 手机APP抢火车票、高铁票,甚至有时候还要帮助同事、朋友为他们家小孩拉投票、刷票,这些场景都无一例外的会引起服务器流量的暴涨,导致网页无法显示、APP反应慢、功能无法正常运转,甚至会引起整个网站的崩溃。我们如何在这些业务流量变化无常的情况下,保证各种业务安全运营,系统在任何情况下都不会崩溃呢?我们可以在系统负载过高时,采用限流、降级和熔断,三种措施

2021-12-24 18:56:21 146

原创 4日志代码

日志级别权限基于此controller演示配置中心的作用. * 在这个controller中我们会基于日志对象 * 进行日志输出测试.log对象在哪个类中创建,getLogger方法中的就传入哪个类的字节码对象 //记住:以后只要Java中使用日志对象,你就采用下面之中方式创建即可. //假如在log对象所在的类上使用了@Slf4j注解,log不再需要我们手动创建,lombok会帮我们创建org.slf4j.Logger (Java中的日志API规范,基于这个规范有Log4J,Logback等.

2021-12-23 23:16:42 320

原创 4Nacos服务配置中心

背景分析: 1.以后的配置都会去配置中心写,不会再去java类里写 2.官方日志去输出,以及日志级别,读内存里的数据比读数据库里的数据快很多,可以在适当的场景打开 内存(cache).什么是配置中心:配置中心最基础的功能就是存储一个键值对配置中心的选型:在面向分布式的微服务系统中,如何通过更高效的配置管理方式,实现微服务系统架构持续“无痛”的演进,并动态调整和控制系统的运行时态,配置中心的选型和设计起着举足轻重的作用。市场上主...

2021-12-23 18:49:23 518

原创 3基于远程服务调用实践

核心知识点@Loadbalanced注解的应用Feign 诞生的背景及应用方式 Feign 接口对应的Bean对象命名方式 Feign 方式远程服务调用时熔断处理方案 Feign 方式调用原理分析。常见问题分析@Loadbalanced注解作用?(描述RestTemplate对象,让系统底层为RestTemplate对象赋能,对请求过程进行拦截)Ribbon是什么,基于Ribbon可以解决什么问题?(一个负载均衡组件,这个组件中提供一套负载均衡算法)为什么要负载均衡?(网络中有一组

2021-12-22 23:26:23 611

原创 Bug集锦

常见Bug分析 JAVA_HOME环境变量定义错误,例如: 说明,这里一定要注意JAVA_HOME单词的拼写,JAVA_HOME中定义的JDK是存在的,还有后面的路径不能有分号“;”. MySQL版本比较低(建议mysql5.7或mariadb10.5及以上版本),例如: 当执行nacos-mysql.sql文件时,出现如下错误: sql文件不存在,例如SQL文件应用错误,例如:N...

2021-12-21 18:51:04 544

原创 2Nacos注册服务中心

注册中心简介背景分析在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信?如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册中心诞生(例如淘宝网卖家提供服务,买家调用服务)。市面上常用注册中心有Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google),那他们分别都有什么特点,我们如何进行选型呢?我们主要从社区活跃度,稳定性,功能,性能等方面进行考虑即可

2021-12-21 18:47:26 210

原创 1微服务介绍

什么是微服务微服务架构(MSA)的基础是将单个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署。如图所示:这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。核心组件分析Spring Cloud Alibaba 默认提供了如下核心功能(先了解):服务限流降级:默认支持 WebServlet、OpenF.

2021-12-20 18:11:38 224

原创 京淘项目后端完整发布

1.集群部署1.1集群部署流程图 部署集群说明:分别准备3台tomcat服务器 端口号分别为8091/8092/8093启动多个进程说明: 勾选其中的选项 ,可以平行运行多个进程部署集群#配置后端代理 server { listen 80; server_name manage.jt.com; location / { #proxy_pass 映射的是请...

2021-12-17 19:59:10 2407

原创 Linux系统

基于Linux内核开发的操作系统这都是属于Linux系统 都是基于linux内核国内的linux系统出名的叫 麒麟 但是不好用 国家要求用 会有补贴 大力鼓励使用 国产 .cd命令集ifconfig/ipaddr 检查IP地址pwd 检查当前的位置tab键 自动补齐(注意唯一性)cd命令是linux中最基本的命令语句,必须熟练掌握cd / 返回根目录cd ...

2021-12-17 12:00:04 900

原创 反向代理

反向代理3.1 业务需求需求说明: 当用户完成图片上传之后 会根据网络地址访问图片,但是查找的图片一定存在于磁盘中.URL地址: http://image.jt.com/2021/12/16/f9981c76-e6a7-49fa-88d9-3be0851dbf50.jpg磁盘地址: D:/project3/images/2021/12/16/f9981c76-e6a7-49fa-88d9-3be0851dbf50.jpg技术难点:1.当用户访问URL网络地址时...

2021-12-16 15:06:27 2149

原创 优化 封装Map集合

/优化封装Map集合 public Map<Integer, List<ItemCat>> getMap() { Map<Integer,List<ItemCat>>map=new HashMap<>(); //查询数据库的所有的记录 List<ItemCat> list = itemCatMapper.selectList(null); for .

2021-12-14 21:15:13 270

原创 MybatisPlus

1.简称MPMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。之前小编的项目都是采用mybatis,所以这里项目当然选择mybatis的增强版呀。简化开发、提高效率,这是Mybatis-Plus核心思想。2.MP得特点: 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强...

2021-12-13 21:09:46 660

原创 用户模块管理

1.1 用户列表展现1.2 用户状态修改1.2.1 业务说明说明: 点击页面开关,修改数据表中的status知识点讲解:1. 数据库中没有boolean类型 可以使用数值类型代替 true 代替数值1, false 代替数值02. 数据库中可以使用tinyint类型代替boolean. 并且2种类型可以自动转化.2. 业务辅助功能2.1 事务控制2.1.1 现象说明说明: 业务逻辑在执行的过程中,如果中间发生了异常,应该保证事务的一致性.事务应该回滚.但是经过测试,发现执行报异常

2021-12-10 23:00:26 1032

原创 用户模块管理

1.2 关于登录业务流程说明: 当用户完成登录时,前端系统会向后端进行访问.后端服务器经过数据库查询.如果查询正确 则返回token密钥信息. 如果查询失败 说明用户名和密码错误 返回null1.5 md5加密算法MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Ri.

2021-12-09 20:00:24 164

原创 Mybatis二

Mybatis注解开发//利用注解可以根据返回值类型,自动映射 //规则1: 注解和映射文件 二选一 映射文件为主导. //规则2: 注解写法一般适用于简单操作.关联查询不适用1.2 Mybatis 缓存讲解1.2.1 缓存说明说明: 如果相同的数据需要多次查询,则可以使用缓存的方式处理,提高用户的响应速度.1.2.2 mybatis缓存说明mybatis中提供了2种缓存的机制.一级缓存: SqlSession级别 在同一个sqlSession内实现数据的共享 默认开启二

2021-12-08 17:43:26 364

原创 动态sql

1.动态sql-where条件1.1业务需求需求:根据对象中不为null的数据,充当where条件,进行查询用<where></where>标签去除语句中多余的and2.动态sql-set条件2.1用<set></set>标签去除语句中多余的逗号3.动态Sql-choose(不想使用所有条件查询)、when(相当于if)、otherwise(相当于else)3.1 业务需求说明说明: 如果不想使用所有的条件可以使用cho

2021-12-07 18:16:57 219

原创 SpringBoot简化Mybatis

1.项目整合1.1创建项目1.SpringBoot_mybatis_12.在 pom文件<dependencies>里引入<!--mybatis依赖包--><!--jdbc依赖包--><!--添加lombok依赖-->文件3.复制粘贴src文件4.删除多余得文件5.修改文件后缀6.修改端口号7.关于开箱即用原则1由于Mybatis依赖了JDBC的jar包. 但是该jar包文件是启动..

2021-12-06 19:41:45 274

空空如也

空空如也

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

TA关注的人

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