@Configuration proxyMethods usage warnings
Reports warnings on incorrectly used proxy methods. Spring Framework 5.2 has introduced an optimization for @Configuration class processing that can be enabled via an attribute @Configuration(proxyBeanMethods = false).
If you disable proxyBeanMethods
, the proxy instances are no longer created and calling the method invokes it again (returning a new instance every time). As a result, you have no guarantee that you're actually injecting the corresponding bean in the context.
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
SpringConfigurationProxyMethods
Incorrect bean method call example:
@Configuration(proxyBeanMethods = false)
class TestConfiguration {
@Bean
public FirstBean firstBean() {
return new FirstBean();
}
@Bean
public SecondBean secondBean() {
return new SecondBean(firstBean()); // -> incorrect call
}
}
You can set proxyBeanMethods
to true or rewrite the code as follows:
@Configuration(proxyBeanMethods = false)
class TestConfiguration {
@Bean
public FirstBean firstBean() {
return new FirstBean();
}
@Bean
public SecondBean secondBean(FirstBean someBean) { // -> correct injected instance
return new SecondBean(someBean);
}
}
Also, the inspection checks @Bean
method calls in a class without the @Configuration
stereotype (in "bean lite mode"):
@Component
class TestComponent {
@Bean
public FirstBean firstBean() {
return new FirstBean();
}
@Bean
public SecondBean secondBean() {
return new SecondBean(firstBean()); // -> incorrect call
}
}
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Spring, 243.23126 |
Thanks for your feedback!