自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring AOP和IOC

将业务的核心功能与非核心业务分开,在对核心业务进行功能增强时,在不改变源代码的前提现对核心功能进行增强.一般用于记录日志,插入公共字段等。不使用ioc时对象的创建需要自己new,使用ioc管理后,对象的创建由ioc容器创建并管理,创建对象的权利由程序员转交给ioc.Bean注释,将Bean管理的对象放入IOC容器中统一管理.之后如果要使用IOC管理。依赖注入是IOC的一种实现方式,他通过将依赖关系注入到对象中,来实现对象间的解耦。异常通知,只有抛出异常之后执行。后置通知,方法执行完之后。

2023-09-17 18:01:44 79 1

原创 RabbitMQ如何保证消息可靠性和解决重复消费问题

具体的一种解决方案就是在生产者发送消息时,携带一个消息的唯一ID.消费者在消费消息时,先通过redis的setnx命令设置一个key为消息ID,值为0的操作.这里的值0表示消息正在消费,1表示消息已经消费完成.如果设置成功,表示当前消息没有被消费,我们就可以消费消息,消费完成后手动ACK,并且把redis的值改成1;return确认机制是当交换机路由信息到队列失败时,返回ack及失败原因.失败原因中包含信息码,失败信息,交换机信息,路由键,消息信息,因此当交换机路由信息到队列失败后后进行重新发送.

2023-09-15 20:19:37 264

原创 MyBatis-Plus使用步骤

是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2023-09-05 21:39:25 298

原创 Linux常用命令

chmod 777 文件名。chmod 权限 文件。

2023-09-03 21:45:26 50

原创 过滤器跟拦截器的区别

而拦截器是基于Spring框架的,可以对方法调用进行拦截,也可以对Controller进行拦截。总的来说,过滤器和拦截器都是Web应用程序中常用的拦截组件,虽然它们有一些不同之处,但是都能够对请求和响应进行拦截和处理,提高Web应用程序的可靠性和安全性。功能:过滤器可以用来修改请求或响应,也可以用来验证请求的合法性;而拦截器主要用来对请求进行处理,例如对请求参数进行处理、对请求进行日志记录等。执行顺序:过滤器的执行顺序是在Servlet容器中按照配置顺序执行,而拦截器的执行顺序是按照配置顺序逐个执行。

2023-08-29 21:23:25 39 1

原创 HTTP 的长连接和短连接

在 HTTP/1.0 中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个 HTML 或其他类型的 Web 页中包含有其他的 Web 资源,如JavaScript 文件、图像文件、CSS 文件等;当浏览器每遇到这样一个 Web 资源,就会建立一个 HTTP 会话。但从 HTTP/1.1 起,默认使用长连接,用以保持连接特性。

2023-08-28 21:36:15 130 1

原创 hashcode

hashCode介绍:hashCode() 的作用是获取哈希码,它实际上是返回一个int整数。这个哈希码的作用是 确定该对象在哈希表中的索引位置。hashCode() 在Object.java中,Java中的任何类都包含有 hashCode() 函数。哈希表存储的是键值对(key-value),它的特点是:能根据“键”快速的检索出对应的“值”。这其中就利用 到了哈希码!(可以快速找到所需要的对象)

2023-08-27 20:21:36 49 1

原创 Spring Boot、Spring MVC 和 Spring 有什么区别

springmvc是spring对web框架的一个解决方案,提供了一个总的前端控制器Servlet,用来接收请求,然后定义了一套路由策略(url到handle的映射)及适配执行handle,将handle结果使用视图解析技术生成视图展现给前端。spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以很方便的整合各种框架,提供AOP机制弥补OOP的代码重复问题、更方便将不同类不同方法中的共同处理抽取成切面、自动注入给方法执行,比如日志、异常等。

2023-08-25 20:28:02 46 1

原创 Springboot自动装配原理

AutoConfigurationPackage注解,即自动配置包,它指定默认的包规则,将扫描主程序类的所在包及其子包下的所有组件并导入到容器中。底层实现是在这个类中利用了Registrar给容器中注入了一系列组件,将指定的一个包下的所有组件都注入进来,而这个包就是主程序类所在的包。springboot的自动装配就是 从spring.factories文件中获取项目启动时加载的自动配置类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理。这个注解用于开启自动配置功能。

2023-08-24 22:13:33 54 1

原创 Redis序列化原理

如上述代码所示,如果你在使用RedisTemplate生成的对象时没有指定key,value的序列化方式,它会自动使用jdk序列化方式序列化redis存入的key和value.我们在IDEA中创建redis对象一般是使用RedisTemplate类的opsForxxx()方法创建一个redis对象,然后存储数据.InitializingBean接口有个,afterPropertiesSet()方法这个方法的意思是初始化bean的时候执行。然后说下他什么时候执行的序列化。

2023-08-23 16:50:40 72 1

原创 Redis

Redis(Remote Dictionary Server ),即远程字典服务.非关系型数据库.C语言开发,基于内存操作的数据库,存储格式为key:value,Redis的key都是字符串.

2023-08-21 20:51:05 28 1

原创 引用类型总结

垃圾回收器一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java 虚拟机就会把这个弱引用加入到与之关联的引用队列中。"虚引用"顾名思义,就是形同虚设,与其他几种引用都不同,虚引用并不会决定对象的生命周期。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。JDK1.2 以后将引用分为强引用、软引用、弱引用、虚引用四种(引用强度逐渐减弱).

2023-08-20 19:14:34 39 1

原创 ThreadLocal内存泄漏原因及处理方式

>,所以Entry的key是弱引用,弱引用的特点是,如果这个对象只存在弱引用,那么在下一次垃圾回收的时候必然会被清理掉。所以key会在垃圾回收的时候被回收掉, 而key对应的value则不会被回收, 这样会导致一种现象:key为null,value有值。因为它的remove方法会主动将当前的key和value(Entry)进行清除。ThreadLocal操作不当会引发内存泄露,最主要的原因在于它的内部类ThreadLocalMap中的Entry的设计。

2023-08-18 21:20:45 352

原创 HashMap是线程安全的吗,线程安全的Map有哪些

线程不安全:HashMap是非线程安全的,如果在多线程环境下使用,需要进行额外的同步处理,或者使用线程安全的ConcurrentHashMap。ConcurrentHashMap:它是线程安全的,采用分段锁机制,不同的段(Segment)可以被不同的线程同时访问,从而提高了并发性能。HashMap 是非线程安全的,因为它不是同步的,多个线程同时对 HashMap 进行操作可能会导致数据不一致的问题。高效的插入、删除和查找操作:由于使用哈希表来存储键值对,HashMap提供了快速的插入、删除和查找操作。

2023-08-16 20:53:39 670 1

原创 异常处理的三种方式

throw new 异常类名称(构造函数参数);异常类名称就是已定义的异常类,构造函数参数是为异常类的构造函数提供的参数。它可以为代码中的某个条件设置一个异常,并在需要的位置进行捕获和处理。

2023-08-15 20:39:48 2257

原创 synchronized和lock的区别

1、synchronized是java关键字,而Lock是java中的一个接口。4、通过Lock可以知道线程有没有拿到锁,而synchronized不能。5、synchronized能锁住方法和代码块,而Lock只能锁住代码块。3、synchronized是不可中断的,Lock可以中断也可以不中断。2、synchronized会自动释放锁,而Lock必须手动释放锁。7、synchronized是非公平锁,Lock可以控制是否公平锁。6、Lock可以使用读锁提高多线程读效率。

2023-08-14 20:52:52 55 2

空空如也

空空如也

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

TA关注的人

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