
java笔记
文章平均质量分 86
java相关的笔记
饕餮争锋
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HandlerInterceptor、okhttp3.Interceptor、feign.RequestInterceptor 三个拦截器对比
本文对比分析了Spring MVC的HandlerInterceptor、OkHttp的Interceptor和Feign的RequestInterceptor三种拦截器。三者均基于责任链模式处理横切关注点,但定位不同:HandlerInterceptor作用于服务端Web层,处理Controller执行过程;OkHttp的Interceptor负责网络请求/响应的原始字节流处理;Feign的Interceptor则在接口方法转HTTP请求时介入。原创 2025-07-25 18:08:16 · 1217 阅读 · 0 评论 -
SpringMVC注解与SpringCloudOpenFeign注解对比
本文对比了SpringMVC与SpringCloud OpenFeign的核心注解差异。SpringMVC注解用于服务端处理HTTP请求,包括路由、参数解析等;OpenFeign则用于客户端构建HTTP请求。主要区别体现在:1)URL路径处理上,Feign需完整路径;2)参数处理上,SpringMVC自动绑定POJO,OpenFeign需显式注解;3)路径变量上,Feign必须显式命名;4)查询参数上,Feign需@SpringQueryMap。原创 2025-07-25 16:33:57 · 542 阅读 · 0 评论 -
Spring Cloud OpenFeign 常用注解_笔记
摘要:SpringCloud OpenFeign提供了声明式HTTP客户端调用,通过常用注解简化微服务间通信。这些注解配合使用可实现RESTful调用,同时支持错误处理和熔断降级机制。使用时需注意Feign与Spring MVC注解的差异,如@PathVariable必须显式命名变量。原创 2025-07-24 23:15:54 · 1032 阅读 · 0 评论 -
Spring MVC中常用注解_笔记
本文介绍了Spring MVC中的11种常用注解及其适用场景,在REST API开发中推荐使用@PathVariable+@RequestBody+@ResponseBody组合,传统Web应用常用@ModelAttribute+@RequestParam,文件上传需用@RequestPart。这些注解能显著提升开发效率和代码可维护性。原创 2025-07-24 22:19:48 · 474 阅读 · 0 评论 -
AspectJ用法_笔记
AspectJ是一个功能强大的Java面向切面编程(AOP)框架,它能将横切关注点(如日志、事务等)与核心业务逻辑分离,提高代码模块化和可维护性。文章演示了AspectJ的5种通知方法:@Before前置通知、@After后置通知、@AfterReturning返回通知、@AfterThrowing异常通知和@Around环绕通知。此外,还介绍了通过自定义注解@MyTag实现AOP的方式,使切面逻辑更加灵活。原创 2025-07-21 21:44:01 · 306 阅读 · 0 评论 -
POST请求url放参数场景-笔记
摘要:POST请求中URL参数和请求体参数各有用途。URL参数(查询字符串)适用于非敏感数据如ID、过滤条件,长度有限且可见;请求体参数适合敏感信息(如密码)、大数据(如表单/文件),支持多种格式。规范不禁止URL参数,但最佳实践是将敏感数据放请求体,非敏感元数据放URL。服务器通过不同方法获取这两类参数(如req.query vs req.body)。设计时应合理分配:URL参数控制行为,请求体传输核心内容。原创 2025-07-03 20:58:17 · 430 阅读 · 0 评论 -
BaseTypeHandler用法-笔记
MyBatis的BaseTypeHandler是实现Java类型与数据库类型双向转换的抽象类,适用于枚举、JSON等特殊类型映射。核心方法是setNonNullParameter和三个getNullableResult实现类型转换。典型场景包括枚举映射(如Status枚举与字符串互转)、JSON对象转换等。使用时需注意空值处理、线程安全和性能优化。示例展示了枚举TypeHandler的实现过程,包括XML配置和ResultMap应用。JSON转换示例则演示了JSONObject与数据库字符串的互转。原创 2025-05-30 18:33:02 · 691 阅读 · 0 评论 -
单点登陆(SSO)简介-笔记
本文介绍了单点登录(SSO)的概念与实现方案。SSO允许用户通过一次登录访问多个系统,其核心是通过身份验证服务提供商(IdP)管理认证信息,常见实现方式包括SAML、OAuth和OpenID Connect。文章重点展示了基于Spring Boot的OAuth2+JWT实现方案,包含Maven依赖配置、application.properties设置、安全配置类和受保护资源Controller的代码示例,并说明了测试流程。该方案适用于微服务架构下的统一身份认证场景,用户只需登录一次即可访问所有授权资源。原创 2025-05-28 20:48:52 · 983 阅读 · 0 评论 -
Cookie与Session简介-笔记
会话跟踪技术是Web开发中解决HTTP无状态问题的关键方案,主要通过Cookie和Session实现。两者通常协同工作:Cookie存储SessionID,Session存储敏感数据。需注意安全性(如HttpOnly/Secure属性)、隐私合规及分布式系统的Session共享问题(如Redis)。技术对比显示,Cookie适合客户端小数据存储,Session适合服务器端安全敏感场景。原创 2025-05-28 19:54:36 · 832 阅读 · 0 评论 -
对象属性复制BeanCopier-笔记
是 Spring 框架中用于高效复制 Java Bean 属性的工具类。它基于 CGLIB 库实现,相比传统的。方法,具有更高的性能,尤其在需要频繁复制对象属性的场景中表现更优。不会递归复制嵌套对象,Converter 也仅用于简单属性转换。原创 2025-05-20 15:09:46 · 444 阅读 · 0 评论 -
TransmittableThreadLocal实现上下文传递-笔记
TransmittableThreadLocal(TTL) 是阿里巴巴开源的工具类,用于解决 ThreadLocal 在线程池中无法传递上下文变量的问题。本文通过完整示例,展示了如何在异步调用中传递用户上下文信息,并对比了 ThreadLocal 的局限性。原创 2025-05-19 18:53:30 · 1014 阅读 · 0 评论 -
WebMvcConfigurer介绍-笔记
WebMvcConfigurer 是 Spring MVC 提供的一个接口,用于自定义 Web 应用的配置。通过实现该接口,开发者可以灵活地添加拦截器、配置视图解析器、设置静态资源处理规则、定义消息转换器等,从而对 Spring MVC 的行为进行深度定制。该接口提供了一系列默认方法,开发者可以通过重写这些方法来实现自定义配置。常见的功能包括添加拦截器、配置视图控制器、设置消息转换器、处理静态资源以及配置跨域请求等。原创 2025-05-16 19:19:42 · 486 阅读 · 0 评论 -
LocaleContextResolver实现多语言切换-笔记
LocaleContextResolver是Spring MVC中用于解析和管理用户语言环境(Locale)的核心接口。其主要功能包括从HTTP请求中提取用户指定的语言/地区信息,并将解析后的Locale信息存储在当前线程的上下文中,确保整个请求链使用一致的Locale。典型使用场景包括国际化支持、动态语言切换、自动语言检测和持久化语言偏好。原创 2025-05-16 17:53:43 · 815 阅读 · 0 评论 -
AbstractErrorController简介-笔记
AbstractErrorController是Spring Boot中用于处理HTTP错误的抽象类,允许开发者自定义错误响应逻辑。通过继承该类,开发者可以覆盖默认行为,灵活定制错误处理。示例展示了如何自定义错误控制器,返回JSON格式的错误信息,并测试了正常访问与错误路径的处理。原创 2025-05-15 18:36:21 · 949 阅读 · 0 评论 -
统一异常处理@ExceptionHandler-笔记
@ExceptionHandler 是 Spring MVC 中用于集中处理控制器(controller)内抛出的异常的注解。它的主要作用是将异常处理逻辑从业务逻辑中解耦,使代码更清晰、可维护性更高。原创 2025-05-15 16:03:56 · 552 阅读 · 0 评论 -
统一响应ResponseBodyAdvice-笔记
ResponseBodyAdvice 是 Spring MVC 中的一个接口,用于在控制器方法返回响应体之前对其进行统一处理。通过实现该接口,开发者可以在响应体写入 HTTP 响应流之前,对响应内容进行全局修改或增强。常见应用场景包括统一响应格式、数据预处理、跨域或日志记录、异常处理增强等。原创 2025-05-15 14:56:32 · 424 阅读 · 0 评论 -
HttpServletRequest常用功能简介-笔记
javax.servlet.http.HttpServletRequest 是 ServletRequest 的子接口,专用于处理 HTTP 请求。它提供了访问请求行、请求头、请求参数和请求属性的方法。本文示例代码展示了如何在 doGet 方法中使用这些方法处理请求。注意事项包括字符编码设置、文件上传处理和数据安全验证。原创 2025-05-15 10:52:37 · 577 阅读 · 0 评论 -
@Controller 与 @RestController-笔记
@Controller和@RestController是SpringMVC中用于处理HTTP请求的两个关键注解,主要区别在于返回值处理方式和适用场景。@Controller通常用于传统Web应用,返回视图名称或ModelAndView,需要视图解析器渲染HTML页面,适用于服务端渲染的场景。而@RestController是Spring 4.0引入的组合注解,结合了@Controller和@ResponseBody的功能,直接返回JSON或XML数据,适用于构建RESTful API或前后端分离的项目。原创 2025-05-14 19:58:07 · 806 阅读 · 0 评论 -
HandlerInterceptor介绍-笔记
HandlerInterceptor 是 Spring MVC 中用于拦截 HTTP 请求的核心接口,开发者可以通过实现其三个关键方法在请求处理的不同阶段插入自定义逻辑。preHandle 方法在控制器方法执行前调用,常用于权限校验和日志记录;postHandle 在请求处理完成后、视图渲染前执行,适合修改模型数据或记录响应日志;afterCompletion 在整个请求完成后执行,用于资源清理和异常处理。原创 2025-05-14 11:35:22 · 506 阅读 · 0 评论 -
javax.servlet.Filter 介绍-笔记
javax.servlet.Filter 是 Java Servlet API 中的核心接口,用于在请求到达目标资源(如 Servlet 或 JSP)之前或响应返回给客户端之前执行预处理或后处理操作。它常用于实现与业务逻辑无关的通用功能,如日志记录、身份验证、字符编码设置、性能监控和请求/响应内容修改。Filter 接口包含三个方法:init() 用于初始化,doFilter() 用于执行过滤逻辑,destroy() 用于资源清理。原创 2025-05-13 23:06:02 · 1349 阅读 · 0 评论 -
org.slf4j.MDC介绍-笔记
MDC 是一个强大的工具,能够显著提升日志的可读性和调试效率。通过结合 Web 过滤器、日志模板和适当的清理机制,可以轻松实现请求级别的日志追踪。在处理异步任务时,需注意上下文传递的问题。原创 2025-05-13 21:30:17 · 794 阅读 · 0 评论 -
feign.RequestInterceptor 简介-笔记
Feign的RequestInterceptor接口允许在HTTP请求发出前进行拦截和修改,适用于微服务架构中统一处理请求的场景,如添加认证头、日志追踪等。通过实现RequestInterceptor接口并重写apply方法,可以修改请求头、参数、体等内容。使用示例展示了如何创建并应用AuthRequestInterceptor来添加认证Token,并通过@FeignClient注解或配置类将其应用到FeignClient中。此外,文章还介绍了如何配置多个拦截器(如认证、追踪、日志记录)并控制其执行顺序,以原创 2025-05-12 21:23:02 · 1256 阅读 · 0 评论 -
okhttp3.Interceptor简介-笔记
OkHttp3的Interceptor接口是用于拦截HTTP请求和响应的核心工具,允许开发者在请求发送前和响应接收后插入自定义逻辑。通过实现Interceptor接口,开发者可以执行多种操作,如添加请求头、记录日志、处理错误、控制缓存和监控性能等。Interceptor接口的关键方法是intercept(Chain chain),它通过chain.proceed(request)继续请求链的处理。文章提供了两个示例:AuthInterceptor用于添加认证Token,LoggingInterceptor用原创 2025-05-12 20:46:06 · 1035 阅读 · 0 评论 -
BeanPostProcessor用法-笔记
Spring框架中的BeanPostProcessor接口允许开发者在Bean初始化前后插入自定义逻辑,从而对Bean实例进行扩展、修改或增强。该接口包含两个方法:postProcessBeforeInitialization在Bean初始化方法之前调用,常用于修改属性或执行预处理;postProcessAfterInitialization在初始化方法之后调用,通常用于返回代理对象或执行后置处理。典型应用场景包括AOP代理、属性注入增强、资源注入以及日志记录等。通过代码示例展示了如何自定义BeanPost原创 2025-05-12 11:40:17 · 660 阅读 · 0 评论 -
Spring Bean生命周期简介-笔记
Spring框架中,Bean的生命周期是其核心机制之一,涵盖了从实例化到销毁的多个阶段。以Singleton作用域为例,Bean的生命周期包括实例化、属性注入、前处理、初始化方法执行、后处理、使用阶段和销毁方法。开发者可以通过实现BeanPostProcessor接口或使用注解(如@PostConstruct、@PreDestroy)来干预这些阶段,从而实现资源加载、AOP代理、日志记录等功能。代码示例展示了如何定义Bean、实现BeanPostProcessor以及配置初始化和销毁方法。掌握Bean的生命原创 2025-05-12 11:06:15 · 1404 阅读 · 0 评论 -
@AutoConfigureBefore功能简介-笔记
介绍了@AutoConfigureBefore 和@AutoConfigureAfter的基本功能和用法原创 2025-05-08 17:39:00 · 605 阅读 · 0 评论 -
SpringBoot的自动配置功能-笔记
介绍SpringBoot的自动配置功能原创 2025-05-08 16:53:10 · 481 阅读 · 0 评论 -
Maven使用exclusions排除依赖-笔记
介绍Maven 的<exclusions> 标签功能,并给出使用示例原创 2025-05-08 11:15:37 · 1932 阅读 · 0 评论 -
自定义SpringBoot Starter-笔记
自定义的Starter的demo原创 2025-05-06 21:31:50 · 575 阅读 · 0 评论 -
SpringBoot Starter简介-笔记
本文件介绍了Spring Boot Starter 的基本功能,并以 spring-boot-starter-web 搭建web应用为例,给出用法演示原创 2025-05-06 21:12:49 · 706 阅读 · 0 评论 -
@ConfigurationProperties配置管理-笔记
@ConfigurationProperties+@EnableConfigurationProperties共同实现了类型安全的配置管理,简化了对配置项的访问和管理。原创 2025-05-06 15:27:11 · 538 阅读 · 0 评论 -
Sping中获取bean的方式总结-笔记
本文介绍了常用的各种获取Spring bean的方式。原创 2025-04-29 14:52:16 · 911 阅读 · 0 评论 -
FeignClient用法-笔记
在微服务架构中总需要各个服务相互调用,各个服务又是以接口方式暴露,所以需要Http远程调用;它用于客户端,是一种声明式、模板化的HTTP客户端。使用该注解声明一个接口为远程服务的客户端,通过简单的接口描述远程调用,而不必手动编写低级的 HTTP 客户端代码。当你将 @FeignClient 注解添加到接口上时,Spring Cloud OpenFeign 将为你提供一个实现了该接口的代理实例,你可以直接通过这个代理实例调用远程服务。Feign 自动处理了请求的发送以及响应的接收和转换。原创 2025-04-24 20:35:19 · 1211 阅读 · 0 评论 -
Spring的xxxAware接口工作原理-笔记
当Spring容器创建UserService这个Bean的时候,它会检查到这个Bean实现了Aware接口。原创 2025-04-25 17:01:50 · 899 阅读 · 0 评论 -
ApplicationEventPublisher用法-笔记
是 Spring 框架中用于发布自定义事件的核心接口。它允许你在 Spring 应用上下文中触发事件,并由其他组件(监听器)进行响应。ApplicationEventPublisher相关的核心概念事件(Event):需要发布的自定义事件,继承。监听器(Listener):通过注解或实现接口来接收事件。发布者(Publisher):通过接口的方法触发事件。常见用法步骤定义自定义事件类继承,并添加必要的属性。创建事件监听器使用注解或实现接口。在需要发布事件的类中注入通过。原创 2025-04-25 17:53:28 · 811 阅读 · 0 评论 -
SpringBoot的自动扫描特性-笔记
Spring Boot 的自动扫描(Component Scanning)是其核心特性之一。通过注解简化了 Bean 的管理,允许框架自动发现并注册带有特定注解的类为 Spring 容器中的 Bean(特定注解有@Component@Service等)。这一机制简化了 Bean 的管理,开发者只需关注业务逻辑的实现,无需手动配置 XML 或使用@Bean注解。核心注解用于指定 Spring 需要扫描的包路径,自动注册带有@Component及其衍生注解的类为 Bean。默认从主类(带有。原创 2025-04-27 16:28:22 · 422 阅读 · 0 评论 -
Spring中生成Bean的方式总结-笔记
Spring生成Bean方式有如下几种,可根据需求选择合适的方式,通常优先使用注解驱动的声明式配置,复杂场景结合条件或作用域控制。原创 2025-04-27 17:12:48 · 640 阅读 · 0 评论 -
Spring框架的ObjectProvider用法-笔记
ObjectProvider是一个用于灵活获取Bean实例的接口,它允许开发者以编程方式有条件地或可选地获取Bean,而无需强制依赖注入,避免在Bean不存在时启动失败。原创 2025-04-27 18:31:58 · 530 阅读 · 0 评论 -
InitializingBean接口和@PostConstruct-笔记
是 Java EE/Jakarta EE 中的一个注解(定义于 JSR-250 规范),用于标记一个方法在依赖注入完成后执行初始化操作。它通常与 Spring 框架一起使用,适用于需要在对象初始化时执行特定逻辑的场景。核心功能初始化方法依赖注入(DI)完成:Spring 容器完成对 Bean 的属性注入(如@Autowired@Value等)。Bean 实例化:Bean 对象被创建后。执行时机是 Bean 生命周期中的一个关键步骤,通常在@Autowired或其他注入方式完成后执行,但早于。原创 2025-04-28 20:13:27 · 1023 阅读 · 0 评论 -
SpringBoot启动后自动执行方法的各种方式-笔记
方法执行时机Bean 初始化完成后(属性注入后)。与类似,属性注入后。应用上下文刷新后,触发前。同上。应用完全就绪(所有Bean初始化完成,所有启动任务执行完毕)。需要访问数据库或资源时,建议使用或。简单的Bean初始化逻辑可用或。注意事项线程问题:默认在主线程执行,避免长时间阻塞操作,可考虑异步执行(如结合@Async依赖注入:在和中无法直接访问其他Bean(需等待初始化完成)。顺序控制:通过@Order或实现Ordered接口控制多个启动任务的顺序。7.2 使用@Order控制执行顺序。原创 2025-04-28 20:47:17 · 936 阅读 · 0 评论