This commit also contains changes to `ServletContextInitializerBeans`.
`ServletContextInitializerBeans` can now be configured to only look
for specific ServletContextInitializer subclasses, defaulting to
ServletContextIntializer.class. `SpringBootMockMvcBuilderCustomizer`
only cares about filters so it was unnecessary to look for all
`ServletContextInitializer`s. Additionally, adapting `Servlet` beans
caused a cycle once the `DispatcherServlet` bean was added and the
customizer only needs to adapt `Filter` beans.
Closes gh-13241
Previously, if a user defines a `@Bean` with a method that returns
`null`, injection by type will ignore that definition but the report
doesn't mention that candidate.
This commit improves the failure analyzer to look for user-defined beans
as well, detecting beans that are `null` matching the requested type
and including them in the report.
Closes gh-13531
This commit adds the ability to customize the RetryTemplate used in the
RabbitMQ infrastructure. The customizer is slightly unusual and offer
a `Target` enum that define the component that will use the retry
template: `SENDER` for the auto-configured `RabbitTemplate` and
`LISTENER` for a listener container created by a
`RabbitListenerContainerFactoryConfigurer`.
Closes gh-13793
This commit turns a lazy injection point for `HttpMessageConverters`
into an `ObjectProvider`-backed injection.
This allows to lazily rely on that bean without creating for it; in some
environments, such proxy creation can lead to issues like SPR-16990.
See gh-13785
Since SPR-17034, the core container now behaves a bit differently when
dealing with `null` beans.
Given a `null` `HandlerMapping` bean named "resourceHandlerMapping":
* `context.getBean("resourceHandlerMapping", HandlerMapping.class)`
still returns a `NullBean`
* `ListableBeanFactory.getBeansOfType` will return a Map of all existing
beans, not including the `null` ones as values of the map.
Closes gh-13760