When spring.main.lazy-initialization=true is enabled, warning logs appear during startup
Spring Boot version 3.5.8. When enabling spring.main.lazy-initialization=true, there are warning logs during startup:
2025-12-09T13:53:00.256 08:00 WARN 35824 --- [ main] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final void org.springframework.amqp.rabbit.connection.CachingConnectionFactory.destroy()] because it is marked as final, consider using interface-based JDK proxies instead.
2025-12-09T13:53:00.257 08:00 WARN 35824 --- [ main] o.s.aop.framework.CglibAopProxy : Unable to proxy interface-implementing method [public final org.springframework.amqp.rabbit.connection.Connection org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection() throws org.springframework.amqp.AmqpException] because it is marked as final, consider using interface-based JDK proxies instead.
That is just warning which will lead to the proper behavior. Those methods won't be proxied, therefore their correct version will be called.
On the other hand, I find that making CachingConnectionFactoryas lazy-initialization is counterproductive. Its "caching" purpose is already about lazy-loading.
So, you might consider to exclude this bean from lazy-initialization scope if you don't like that warning.
We may consider to remove that final from those method, but give us more justification rather than just warning because of lazy-initialization.
Thanks
Thank you,I have already used this code to eliminate the warning.
@ConditionalOnProperty(value = "spring.main.lazy-initialization", havingValue = "true")
@Bean
LazyInitializationExcludeFilter dcRabbitLazyInitializationExcludeFilter() {
return LazyInitializationExcludeFilter.forBeanTypes(CachingConnectionFactory.class);
}