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?
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
@Bean
method. For example, given an@Bean
method 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 = "")
.