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方法以及数据库引擎不支持事务等。
Spring全家桶
未读
浅析Spring中AOP的实现原理——动态代理
本文深入解析了Spring框架中AOP的实现原理,重点探讨了动态代理的应用。文章首先介绍了Spring AOP的实现原理,通过JDK动态代理和CGLib动态代理两种方式,详细阐述了各自的原理、优缺点及适用场景。接着,通过代码示例验证了Spring在类实现接口时使用JDK动态代理,在类没有实现接口时使用CGLib动态代理。最后,文章还介绍了如何通过配置强制Spring使用CGLib进行AOP代理。
Spring全家桶
未读
Autowried和Resource注解总结
本文深入探讨了Spring框架中的`@Autowired`和`@Resource`注解,分析了它们在依赖注入(DI)中的使用方法、区别以及解决冲突的策略。`@Autowired`默认按类型注入,支持多种注入方式,并推荐使用构造方法注入;而`@Resource`则默认按名称注入,更适合需要明确指定资源名称的场景。两者在解决依赖注入冲突方面各有特点,`@Autowired`通过`@Qualifier`和`@Primary`注解,而`@Resource`则通过显式指定名称或字段名/方法名作为Bean名称。在Spring应用中,`@Autowired`是首选,而在需要跨框架移植或明确指定资源名称时,`@Resource`可能更合适。