添加spring-cloud-loadbalancer后出现BeanPostProcessor适配警告,求解决
解决Spring Cloud LoadBalancer添加后出现的BeanPostProcessor警告问题
添加spring-cloud-loadbalancer依赖到类路径后,启动应用时会出现以下INFO级别的警告日志(已翻译为中文):
2022-09-20 14:38:15,199 INFO [main] o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration' 类型为[org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration],不适合被所有BeanPostProcessor处理(例如:不适合自动代理) 2022-09-20 14:38:15,201 INFO [main] o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig' 类型为[org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig],不适合被所有BeanPostProcessor处理(例如:不适合自动代理) 2022-09-20 14:38:15,206 INFO [main] o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' 类型为[org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction],不适合被所有BeanPostProcessor处理(例如:不适合自动代理)
问题本质
这是Spring容器启动过程中的正常提示,并非错误。原因是这些LoadBalancer相关的Bean在部分BeanPostProcessor(比如AOP自动代理处理器)完成初始化之前就被创建了,因此无法被后续的BeanPostProcessor处理,但这完全不会影响Spring Cloud LoadBalancer的核心功能。
解决/消除警告的方式
调整日志级别(推荐)
如果只是不想看到这些INFO日志,可以在配置文件中将对应类的日志级别调高。以Spring Boot的application.yml为例:logging: level: org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: WARN这样就不会再输出这类INFO级别的提示。
自定义Bean创建时机(不推荐)
若确实需要这些Bean被所有BeanPostProcessor处理,可以手动配置相关Bean,替代自动配置的实例,确保它们在所有BeanPostProcessor初始化完成后再创建。但这种操作完全没必要,因为警告本身不影响功能,反而会增加配置复杂度。
内容的提问来源于stack exchange,提问作者Xiaochen Lu
相关产品推荐
相关产品推荐

