自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Redis】 分布式锁

分布式锁是控制分布式系统间同步访问共享资源的一种方式,其可以保证共享资源在并发场景下的数据一致性。为了达到同步访问,让这些线程在访问共享资源之前先要获取到一个令牌 token,只有具有令牌的线程才可以访问共享资源。这个令牌就是通过各种技术实现的分布 式锁。而这个分布锁是一种“互斥资源”,即只有一个。只要有线程抢到了锁,那么其它线 程只能等待,直到锁被释放或等待超时。

2024-05-20 16:16:03 1369

原创 【Redis】 Redis 缓存

1)在配置文件中注册Redis连接信息与缓存信息2)需要缓存到Redis中的实体类必须要序列化3)Spring Boot 启动类中要添加@EnableCaching注解4)查询方法上要添加@Cacheable注解5)对数据进行写操作的方法上添加@CacheEvict注解6)对于需要手工操作Redis的方法,需通过RedisTemplate来获取操作对象。

2024-05-20 16:15:31 849

原创 【Redis】Redis 分布式系统

分布式数据库系统会根据不同的数据分区算法,将数据分散存储到不同的数据库服务器 节点上,每个节点管理着整个数据集合中的一个子集。与。

2024-05-16 10:04:56 604

原创 【Redis】Redis 主从集群(二)

Sentinel 维护着三个定时任务以监测 Redis 节点及其它 Sentinel 节点的状态1)info 任务:每个 Sentinel 节点每 10 秒就会向 Redis 集群中的每个节点发送 info 命令,以获得最新的 Redis 拓扑结构2)心跳任务:每个Sentinel节点每1秒就会向所有Redis节点及其它Sentinel节点发送一条ping命令, 以检测这些节点的存活状态。该任务是判断节点在线状态的重要依据。

2024-05-15 09:57:42 1209

原创 【Redis】Redis 主从集群(一)

为了避免 Redis 的单点故障问题,可以搭建一个 Redis 集群,将数据备份到集群中的其它节点上。若一个 Redis 节点宕机,则由集群中的其它节点顶上。

2024-05-14 12:23:33 1048

原创 【Redis】Redis持久化

Redis 是一个内存数据库,所以其运行效率非常高。但内存中的数据是不持久的,若主机宕机或 Redis 关机重启,则内存中的数据全部丢失。这是不允许的。Redis 具有持久化功能,其会按照设置以快照或操作日志的形式将数据持久化到磁盘。根据持久化使用技术的不同,Redis 的持久化分为两种:RDB 与 AOF。

2024-05-13 19:41:51 1195

原创 【Redis】Redis 事务

Redis 的事务的本质是。这组命令在执行过程中会被顺序地、一次性 全部执行完毕,只要没有出现语法错误,这组命令在执行期间不会被中断。

2024-05-11 19:14:41 557

原创 【Redis】集合的底层实现原理

zipList称为压缩列表,是一个经过特殊编码的用于存储字符串或整数的双向链表。其底层数据结构由 head、entries 与 end 三部分构成。这三部分在内存上是连续存放的listPack 也是一个经过特殊编码的用于存储字符串或整数的双向链表。其底层数据结构也由head、entries 与 end 三部分构成,且这三部分在内存上也是连续存放的跳跃列表是一种随机化的数据结构,基于并联的链表,实现简单, 查找效率较高。在链表的基础上增加了跳跃功能,使得在查找元素时,能够提供较高的效率。

2024-05-10 09:16:21 1415

原创 【Redis】简单动态字符串 SDS

虽然 Redis 是使用标准 C 语言开发的,但并没有直接使用 C 语言中传统的字符串表示,而是自定义了一 种字符串。这种字符串本身的结构比较简单,但功能却非常强大,称为简单动态字符串,简称 SDSRedis 中的所有字符串并不都是 SDS,也会出现 C 字符串。C 字符串只会出现在字符串“字面常量”中,并且该字符串不可能发生变更。

2024-05-09 09:13:28 1137

原创 【Redis】Redis命令(四)

一种由三部分构成的集合,这种数据结构称为空间元素。经度(longitude):有效经度为[-180,180]。正的表示东经,负的表示西经;纬度(latitude):有效纬度为[-85.05112878,85.05112878]。正的表示北纬,负的表示南纬;位置名称:为该经纬度所标注的位置所命名的名称,也称为该 Geospatial 集合的空间元素名称。

2024-05-08 08:56:49 820

原创 【Redis】Redis命令(三)

有序 Set 中的每一个元素都有一个分值 score,Redis 会根据 score 的值对集合进行由小到大的排序。元素不能重复,但元素的 score 可以重复。由于该类型的所有命令均是字母 z 开头,所以该 Set 也称为 ZSet。

2024-05-07 09:38:03 784

原创 【Redis】Redis命令(二)

Hash 表就是一个映射表 Map,由键值对构成,为和DB的 key 进行区分,Hash的键称为 field,值称为 value。field-value 对均为 String 类型。

2024-05-06 09:17:01 697

原创 【Redis】Redis命令(一)

默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB。

2024-05-05 10:29:58 865

原创 【Redis7】了解Redis

如 Map 一样的key-value 对,典型代表就是 Redis。

2024-05-04 16:05:56 1260

原创 【Linux】网络配置

在VMware界面,点击 编辑→虚拟网络编辑器→NAT设置→记下网关。

2024-05-03 17:54:59 23

原创 【Linux】系统操作

vi编辑器是Linux和Unix上最基本的文本编辑器,是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法相比的。vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。

2024-05-02 09:54:20 771

原创 【Linux】了解和使用Linux

linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力已经得到业界的认可,目前大多数企业级应用以及集群项目都部署运行在linux操作系统之上。常见版本:Ubuntu(乌班图)、RedHat(红帽)、CentOSFedoraSuSE、OpenSUSE、红旗Linux(国产2.Linux安装。

2024-05-01 14:41:10 9

原创 【报错】Could not autowire. No beans of ‘SysUserRoleService‘ type found

3.解决办法是:降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略的级别。2.可以修改成@Resource注入,@ Autowired和@Resource区别一个是默认按照类型,一个默认按照名字。1.查看对应service层是否添加@Service。

2024-04-30 10:01:18 249

原创 【SSM整合】全注解开发

Servlet3.0新特性:服务器在启动的时候会自动从容器中找。之后,web服务器在启动的时候会根据它来初始化Servlet上下文。spring3.1版本后,类继承。方法来完成Servlet上下文的初始化。接口的实现类,自动调用它的。

2024-04-30 10:00:09 388

原创 【springMVC】拦截器

实现接口,实现方法:只有该方法有返回true放行,false拦截2)postHandle:处理器方法调用之后执行3)afterCompletion:渲染完成后执行。

2024-04-29 09:27:29 607

原创 【springMVC】文件上传与下载

配置web.xml:(

2024-04-28 09:38:29 376

原创 【springMVC】转发与重定向

1)转发是一次请求。因此浏览器地址栏上的地址不会发生变化,地址仍为第一次请求地址;重定向是两次请求。因此浏览器地址栏上的地址会发生变化,地址为第二次请求地址2)转发的代码实现:request.getRequestDispatcher("/index").forward(request, response);重定向的代码实现:response.sendRedirect("/webapproot/index")3)转发是服务器内部资源跳转,由服务器来控制。不可实现跨域访问;

2024-04-27 08:45:23 342

原创 【springMVC】三个域对象

接口名:HttpServletRequest,equest对象代表了一次请求,一次请求一个request。应用场景:A转发到B,两者可通过request共享资源。

2024-04-27 08:44:05 516

原创 【springMVC】@RequestMapping的作用

将指定 URL 的请求绑定到一个特定的方法或类上,从而实现对请求的处理和响应。RequestMapping注解只能出现在类上或者方法上。

2024-04-26 09:08:33 1300

原创 【springMVC】了解springMVC

如下是Spring架构图,其中Web中的servlet指的就是Spring MVC:与纯粹的Servlet开发区别:1)入口控制:SpringMVC框架通过DispatcherServlet作为入口控制器,负责接收请求和分发请求。Servlet开发中,需要自己编写Servlet程序,在web.xml中进行配置,才能接受和处理请求。

2024-04-26 09:07:03 543 1

原创 【spring6】Spring中的八大模式

BeanFactory的getBean()方法,通过唯一标识来获取Bean对象。是典型的简单工厂模式(静态工厂模式)

2024-04-25 10:08:08 258 1

原创 【spring6】事务

什么是事务:在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。多条DML要么同时成功,要么同时失败,这叫做事务事务的四个处理过程:开启事务;执行业务代码;提交事务;回滚事务事务的四个特性:1):事务是最小的工作单元,不可再分2):事务要求要么同时成功,要么同时失败。事务前和事务后的总量不变3):事务和事务之间因为有隔离性,才可以保证互不干扰4):持久性是事务结束的标志。

2024-04-25 10:06:31 1398 1

原创 【spring6】面向切面编程AOP

AOP是对OOP(面向对象编程)的补充延伸,底层使用的就是动态代理(JDK动态代理 + CGLIB动态代理技术)来实现的。应用:一个系统会有,例如:日志、事务管理、安全等。交叉业务代码在多个业务流程中反复出现,这个交叉业务代码没有得到复用,并且修改这些交叉业务代码的话,需要修改多处。程序员无法专注核心业务代码的编写,在编写核心业务代码的同时还需要处理这些交叉业务。使用AOP可以解决这些问题。优点:1)代码复用性增强;2)易于维护;3)使开发者更关注业务逻辑。

2024-04-24 09:14:38 1623

原创 【spring6】代理

23种设计模式之一。作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不应该看到的内容和服务或者添加客户需要的额外服务。通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。角色:代理类(代理主题);

2024-04-24 09:13:00 680

原创 【spring6】Spring IoC注解式开发

负责声明Bean的注解,常见的包括四个:3)@Service;:可以看出@Controller、@Service、@Repository这三个注解都是@Component注解的别名。这四个注解的功能相同,只为了增强程序的可读性,建议:控制器类上使用Controller,service类上使用Service,dao类上使用Repository。

2024-04-23 15:17:46 541

原创 【spring6】解决循环依赖的机理

ClassA依赖ClassB,ClassB又依赖ClassA,形成依赖闭环。在解析ClassA的属性时,又发现依赖于ClassB,再次去获取ClassB,当解析ClassB的属性时,又发现需要ClassA的属性,但此时的ClassA已经被提前曝光加入了正在创建的bean的缓存中,则无需创建新的的ClassA的实例,直接从缓存中获取即可。我们可以先把所有的单例Bean实例化出来,放到一个集合当中(我们可以称之为缓存),所有的单例Bean全部实例化完成之后,以后我们再慢慢的调用setter方法给属性赋值。

2024-04-23 10:37:42 411

原创 【spring6】Bean的生命周期

Bean生命周期可以粗略的划分为五大步:1)实例化Bean2)Bean属性赋值3)初始化Bean4)使用Bean5)销毁Bean。

2024-04-22 15:50:07 510

原创 【spring6】BeanFactory和FactoryBean的区别

BeanFactory是工厂。Spring IoC容器的顶级对象,BeanFactory被翻译为“Bean工厂”,在Spring的IoC容器中,“Bean工厂”负责创建Bean对象。

2024-04-22 09:25:05 178

原创 【spring6】工厂模式的三种形态

不属于23种设计模式之一。简单工厂模式又叫静态工厂方法模式,是工厂方法模式特殊实现。简单工厂模式的角色包括三个:1)抽象产品角色;2)具体产品角色;3)工厂类角色简单工厂模式的优点:客户端程序不需要关心对象的创建细节,需要哪个对象时,只需要调用工厂类,初步实现了责任的分离。客户端只负责“消费”,工厂负责“生产”。生产和消费分离。简单工厂模式的缺点:工厂类集中了所有产品的创造逻辑,一旦出问题,整个系统瘫痪;不符合OCP开闭原则,在进行系统扩展时,需要修改工厂类。

2024-04-21 21:25:06 623 1

原创 【spring6】Bean的作用域

默认情况下,Spring的IoC容器创建的Bean对象是单例的。Bean对象的创建是在初始化Spring上下文的时候就完成的。

2024-04-21 18:05:20 445 1

原创 【spring6】set注入

【代码】【spring6】set注入。

2024-04-20 15:17:41 414

原创 【spring6】启用Log4j2日志框架

配置文件(文件名固定为:log4j2.xml,文件必须放到类根路径下)

2024-04-18 15:45:00 123

原创 【spring6】Spring的八大模块

这是Spring框架最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。核心容器的主要组件是 BeanFactory,BeanFactory是工厂模式的一个实现,是任何Spring应用的核心。它使用IoC将应用配置和依赖从实际的应用代码中分离出来。

2024-04-18 11:15:00 507

原创 【spring6】OCP,DIP,IoC

从以上流程可以发现,当原本使用MySQL数据库的业务发生改变,需要Oracle数据库时,我们需要引入新的dao层,同时service层的代码也要跟着改变,这就需要修改之前运行正常的程序,显然这违背了OCP原则。

2024-04-18 09:15:00 505

原创 【mybatis】逆向工程

第二步:配置文件,必须叫generatorConfig.xml。第一步:新建一个单独模块,引入工程插件。

2024-04-17 10:20:53 360

空空如也

空空如也

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

TA关注的人

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