I have my own bean:
@Bean public MyBean myBean(){... following spring documentation to release its own resources I should specify destroyMethod. I've not found any default destroy methods called by spring in case if destroyMethod is not specified directly.
I used
@Bean(destroyMethod = "close") public MyBean myBean(){... but think about possibility to do not specify destroy method directly if it has value by default.
Does spring try something by default like destroy, close, release? If spring tries some methods by default to release resources - which ones?
display() as destroy-method is valued in the bean definition. The default scope with which bean is created is singleton hence, invoking the factory. destroySingletons() will call the method mentioned in the destroy-method . Follow this answer to receive notifications.
destroy-method is bean attribute using which we can assign a custom bean method that will be called just before the bean is destroyed. To use the destroy-method attribute, we do as follows. Here myPreDestroy() method will be defined in the Student class. Spring will call this method just before destroying the bean.
@Bean methods may also be declared within classes that are not annotated with @Configuration. For example, bean methods may be declared in a @Component class or even in a plain old class. In such cases, a @Bean method will get processed in a so-called 'lite' mode.
Annotating a class with the @Configuration indicates that the class can be used by the Spring IoC container as a source of bean definitions. The @Bean annotation tells Spring that a method annotated with @Bean will return an object that should be registered as a bean in the Spring application context.
As documented in Bean.destroyMethod:
As a convenience to the user, the container will attempt to infer a destroy method against an object returned from the
@Beanmethod. For example, given an@Beanmethod returning an Apache Commons DBCPBasicDataSource, the container will notice theclose()method available on that object and automatically register it as thedestroyMethod. This 'destroy method inference' is currently limited to detecting only public, no-arg methods named 'close' or 'shutdown'.
In other words, if you don't specify destroyMethod, but the bean has a public close() or shutdown() method, it will be automatically used as the destroy-method.
To disable this inference, use @Bean(destroyMethod = "").
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With