Реализация интерфейса это тесная связь?

Здесь говорится, что

Я бы не рекомендовал использовать интерфейс InitializingBean и DisposableBean, потому что он будет тесно связан с вашим кодом к Spring

Имеет ли это смысл? Я думал, что это будет как раз противоположность тесной связи.

2 ответа

Решение

Здесь автор означает, что если вы позволите своим классам приложений реализовывать интерфейсы InitializingBean и DisposableBean (которые являются интерфейсами, специфичными для пружины), то вы связываете свой код с пружиной. В будущем, если Spring переименует эти интерфейсы (хотя вряд ли), или вы перестанете использовать Spring, вам придется обновить код вашего класса.

Вместо этого, если вы используете атрибуты init-method и destroy-method в своей конфигурации bean-компонента, ваш класс не зависит от Spring, т.е. ваш класс не зависит от классов, специфичных для Spring.

Надеюсь, поможет.

Я думаю, что идея здесь состоит в том, чтобы не создавать никакой зависимости от вашего кода для весенних аннотаций

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

Когда вы явно объявляете этот вид зависимости, вы связываете свой код с пружинными банками.

В этом другом примере - http://www.mkyong.com/spring/spring-init-method-and-destroy-method-example/ - он показывает, как вы можете использовать методы соглашения, определенные в XML. Нет весеннего импорта.

Другие вопросы по тегам