随笔分类 -  面面俱到

摘要:通知类型 在基于Spring AOP编程的过程中,基于AspectJ框架标准,spring中定义了五种类型的通知,它们分别是: 前置通知 (@Before) 。 返回通知 (@AfterReturning) 。 异常通知 (@AfterThrowing) 。 后置通知 (@After)。 环绕通知 阅读全文
posted @ 2023-03-25 20:43 残城碎梦 阅读(315) 评论(0) 推荐(0) 编辑
摘要:项目的开发过程中,我们经常强调项目的代码模块尽量做到低耦合高内聚,但是什么是耦合?怎样做到低耦合? 什么是耦合? 耦合指的就是两个类之间联系的紧密程度,看下面这段代码: public class A{ public int i; } public class B{ public void put(A 阅读全文
posted @ 2023-03-25 20:35 残城碎梦 阅读(500) 评论(0) 推荐(0) 编辑
摘要:ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。 1)资源集中管理,实现资源的可配置和易管理。 2)降低了使用资源双方的依赖程度,也就是我们说的耦合度。 ioc思想的关键词就是依赖注入和控制反转。 所谓的依赖注入,则是,甲方开放接口,在它需要 阅读全文
posted @ 2023-03-25 20:20 残城碎梦 阅读(19) 评论(0) 推荐(0) 编辑
摘要:先列段代码: public class Singleton { private static volatile Singleton singleton = null; private Singleton() { } public static Singleton getInstance(){ //第 阅读全文
posted @ 2023-03-25 20:14 残城碎梦 阅读(37) 评论(0) 推荐(1) 编辑
摘要:内存泄漏(memory leak) 内存泄漏是指程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统奔溃等严重后果。 一次内存泄漏似乎不会有大的影响,但多次内存泄漏后堆积的结果就是内存溢出。 内存泄漏具有隐蔽性,积累性的特征,比其他内存非法访问错误更 阅读全文
posted @ 2023-03-25 20:08 残城碎梦 阅读(100) 评论(0) 推荐(0) 编辑
摘要:什么是事务 事务的四大特性 事务包含四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)(ACID)。 原子性(Atomicity) 原子性是指对数据库的一系列操作,要么全部成功,要么全部失败,不可能出现部分成功的情 阅读全文
posted @ 2023-03-25 15:46 残城碎梦 阅读(45) 评论(0) 推荐(0) 编辑
摘要:在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标: 数据的保密性,防止用户的数据被窃取或泄露 保证数据的完整性,防止用户传输的数据被篡改 通信双方的身份确认,确保数据来源与合法的用户 常见的密钥加密算法类型大体可以分为三类:对称加密、非 阅读全文
posted @ 2023-03-25 14:32 残城碎梦 阅读(594) 评论(0) 推荐(0) 编辑
摘要:我们应该都听说过消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。 如图: (1)订单服务投递消息给MQ中间件 (2)物流服务监听MQ中间件消息,从而进行消费 如何保障订单服务把消息成功投递给MQ中间件,以RabbitMQ举 阅读全文
posted @ 2023-03-25 12:58 残城碎梦 阅读(40) 评论(0) 推荐(0) 编辑
摘要:单点登录简介 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问 阅读全文
posted @ 2023-03-25 12:25 残城碎梦 阅读(204) 评论(0) 推荐(0) 编辑
摘要:概述 并发读写 秒杀要解决的主要问题是:并发读与并发写。 并发读的优化理念是尽量减少用户到服务端来读数据,或者让他们读更少的数据;并发写的处理原则一样,要求我们在数据库层面独立出一个库,做特殊的处理。 其次,还需要针对秒杀系统做一些保护,针对意料之外的情况设计兜底方案,以防止最坏的情况发生。 API 阅读全文
posted @ 2023-03-25 11:47 残城碎梦 阅读(238) 评论(0) 推荐(0) 编辑
摘要:对于一些用户请求,在某些情况下是可能重复发送的,如果是查询类操作并无大碍,但其中有些是涉及写入操作的,一旦重复了,可能会导致很严重的后果,例如交易的接口如果重复请求可能会重复下单。 重复的场景有可能是: 黑客拦截了请求,重放 前端/客户端因为某些原因请求重复发送了,或者用户在很短的时间内重复点击了。 阅读全文
posted @ 2023-03-24 14:22 残城碎梦 阅读(40) 评论(0) 推荐(0) 编辑
摘要:当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明: 表名:order_history 描述:某个业务的订单历史表 阅读全文
posted @ 2023-03-24 08:54 残城碎梦 阅读(139) 评论(0) 推荐(0) 编辑
摘要:字符串的内容是由一个字符数组 char[] 来存储的,由于数组的长度及索引是整数,且String类中返回字符串长度的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大长度可 阅读全文
posted @ 2023-03-23 13:46 残城碎梦 阅读(382) 评论(0) 推荐(0) 编辑
摘要:DispatcherServlet:前端控制器,作为整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。 HandlerMapping:处理器映射器,DispatcherServlet调用HandlerMapping,HandlerMapping根据 阅读全文
posted @ 2023-03-23 09:13 残城碎梦 阅读(12) 评论(0) 推荐(0) 编辑
摘要:阿里巴巴Java开发手册规定 只要重写 equals,就必须重写 hashCode。 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equal 阅读全文
posted @ 2023-03-23 09:12 残城碎梦 阅读(116) 评论(0) 推荐(0) 编辑
摘要:为什么使用消息队列 消息队列的常见使用场景有很多个,但是核心的有三个:解耦、异步、削峰 解耦:那种不需要直接同步调用接口的,可以考虑异步化解耦 异步:主业务执行结束后从属业务通过MQ,异步执行,减低业务的响应时间 削峰:高并发场景下,延缓用户请求,缓解应用压力 消息队列的优点和缺点? 优点: 特殊场 阅读全文
posted @ 2023-03-21 13:57 残城碎梦 阅读(44) 评论(0) 推荐(0) 编辑
摘要:什么是反射 反射是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制(包括private实例和方法),java反射机制提供了以下几个功能: 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意 阅读全文
posted @ 2023-03-21 12:58 残城碎梦 阅读(20) 评论(0) 推荐(0) 编辑
摘要:AOP是什么? 与OOP对比,AOP是面向切面编程。传统OOP开发中,代码逻辑是至上而下的,过程中会出现一些横切性问题,这些横切性的问题和我们的主业务逻辑关系散落在代码的各个地方,造成难以维护,AOP的编程思想就是把业务逻辑和横切的问题进行分离,从而达到解耦的目的,使代码的重用性和开发效率高(目的是 阅读全文
posted @ 2023-03-21 08:57 残城碎梦 阅读(31) 评论(0) 推荐(0) 编辑
摘要:为什么需要缓存 存储如MySQL通常支持完整的ACID特性,因为可靠性,持久性等因素,性能普遍不高,高并发的查询会给MySQL带来压力,造成数据库系统的不稳定。同时也容易产生延迟。根据局部性原理,80%请求会落到20%的热点数据上,在读多写少场景,增加一层缓存非常有助于提升系统吞吐量和健壮性。 存储 阅读全文
posted @ 2023-03-20 22:30 残城碎梦 阅读(19) 评论(0) 推荐(0) 编辑
摘要:Redis两种持久化的方式 1)RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 2)AOF持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,AOF文件中全部以redis协议的格式来保存,新命令会被追加到文件的末尾,redis还可以在后台对AOF文件进 阅读全文
posted @ 2023-03-20 22:01 残城碎梦 阅读(31) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示