Java
未读
面试──java基础题
本文深入探讨了Java编程语言的基础知识,涵盖了序列化和反序列化、Exception和Error的区别、Java的优势、多态特性、参数传递方式、多继承的限制、面向对象与面向过程编程的区别、方法重载与重写的差异、内部类、Java 8-21的新特性、String、StringBuilder和StringBuffer的区别、包装类型与基本类型的比较、抽象类与接口的区别、JDK与JRE的差异、hashcode和equals方法、SPI机制、泛型的作用与擦除、深拷贝与浅拷贝、Integer缓存池、类加载机制、双亲委派模型、new String("yupi")语句的对象创建情况以及线程的start()方法限制等多个方面。文章旨在帮助读者全面理解Java编程的核心概念和技术细节。
中间件
未读
初始RabbitMQ
本文探讨了RabbitMQ消息队列的基本概念和应用。文章首先介绍了同步调用和异步调用的区别,以及异步调用在消息队列中的优势与不足。接着,详细阐述了RabbitMQ的核心概念,包括消息发送者、消费者、队列、交换机和绑定等。文章还对比了不同MQ技术的选型,如Kafka、RabbitMQ、RocketMQ和ActiveMQ。最后,通过Java客户端的快速入门示例,展示了如何使用SpringAMQP进行消息发送和接收,并讨论了消息转换器在处理对象类型消息时的应用。
Java重要知识
未读
Reactive-Stream知识
Reactive Streams 规范旨在解决传统数据处理模式中存在的“消费者压垮”问题。通过引入背压机制,该规范允许消费者控制生产者的速度,从而确保系统在高负载下的稳定性和可靠性。它定义了一套通用接口,使不同库能够互操作。Java 9 的 Flow 类实现了该规范,提供了核心接口的实现,包括 Publisher、Subscriber、Subscription 和 Processor,使得构建高性能、可扩展的异步应用更加简单和安全。
Spring全家桶
未读
SpringBoot日志管理
本文探讨了Java开发中的日志记录问题,指出使用System.out.println进行调试的不便,并介绍了常用的日志门面和实现,如JCL、SLF4j、Log4j、JUL、Log4j2和Logback。文章重点介绍了Spring Boot如何将日志默认配置得很好,包括其内部机制、日志格式、记录方式、日志级别、日志分组、文件输出和归档策略等。最后,文章提供了最佳实践建议,如排除第三方框架的日志包、使用slf4j-api记录日志等。
Spring全家桶
未读
Springboot +JWT实现登录认证
本文介绍了基于Spring Boot和JWT实现登录认证、密码加密及Token校验的全过程。项目包含用户注册、登录、JWT生成、Token验证、权限控制等功能。核心组件包括用户实体、JWT工具类、JWT拦截器、认证控制器等。技术栈包括Spring Boot、Spring Security、Spring Data JPA等。文章详细阐述了JWT认证原理、流程、项目架构设计、实现流程以及实际测试流程。
Spring全家桶
未读
Spring MVC 参数映射学习笔记
Spring全家桶
未读
Spring Boot拦截器(Interceptor)详解
本文详细解释了Spring Boot中的拦截器(Interceptor)概念及其作用。拦截器类似于Filter,用于在Controller处理请求前执行特定任务,如日志记录、权限检查和性能监控等。文章介绍了自定义Interceptor的方法,包括实现HandlerInterceptor接口和重写三个方法。通过示例代码,展示了如何配置拦截器、处理请求和响应,并展示了多个拦截器如何按顺序执行。此外,文章还探讨了性能监控和登录检测等实际应用场景。
Spring全家桶
未读
Spring MVC 执行流程
Spring全家桶
未读
聊聊@Transactional注解和事务的使用
本文探讨了@Transactional注解和事务的使用。首先介绍了事务的概念和Spring中事务管理的两种方式:编程式和声明式。重点分析了声明式事务的优缺点,包括其粒度问题、易被忽略的问题以及失效场景。最后详细介绍了@Transactional注解的属性和失效场景,如非public方法、错误的propagation设置、错误的rollbackFor设置、类中方法调用、异常被catch、final和static方法以及数据库引擎不支持事务等。