Этого можно добиться, просто пометив метод getFoo()
в MultiProvider
с помощью @Bean
@Component
class MultiProvider {
@Bean(destroyMethodName="cleanup") // HERE IS THE TRICK
public Foo getFoo();
public Bar getBar();
}
@Component
class FooConsumer {
FooConsumer(Foo f);
}
если проблема возникает из-за того, что пружина не может ее должным образом уничтожить, вы можете включить логику в метод cleanup
, объявленный при аннотировании @Bean
public class Foo {
public void cleanup() {
// destruction logic
}
}
Обратите внимание, что @component и @configurable более или менее одинаковы с
некоторые тонкие различия, но в вашем случае вы можете использовать @component, если вы этого не сделаете
хочу изменить это. Подробнее