Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Зачем использовать Spring?

#java #spring


Я имею в виду основную функциональность. Я, в общем-то, понял концепцию IoC и DI.
Но какие это действительно дает преимущества? Только ли возможность с легкостью сменить
одну реализацию класса на другую и не писать везде new? Нигде не нашел прямо прозрачного
примера достоинств Spring-а, везде с первого абзаца про общий принцип IoC.
    


Ответы

Ответ 1



Основное преимущество Spring'а - возможность разработки приложения как набора слабосвязанных (loose-coupled) компонентов. Чем меньше компоненты приложения знают друг о друге, тем проще разрабатывать новый и поддерживать существующий функционал приложения. Классический пример - управление транзакциями. Spring позволяет вам управлять транзакциями совершенно независимо от основной логики взаимодействия с БД. Изменение этой логики не порушит транзакционность, равно как изменение логики управления транзакциями не сломает логику программы*. Spring поощряет модульность. Компоненты можно добавлять и удалять (почти) независимо друг от друга. В принципе, приложение можно разработать таким образом, что оно даже не будет знать, что управляется Spring'ом*. Также Spring заметно упрощает модульное тестирование (unit-testing): в компонент, разработанный для работы в IoC контейнере очень легко инжектировать фейковые зависимости и проверить работу только этого компонента. Ну, и в качестве приятного дополнения, Spring сильно облегчает инициализацию и настройку компонентов приложения, позволяя гибко настраивать приложение без существенных изменений Java-кода*. Ещё раз, кратко: Поощрение слабой связанности компонентов, и, как следствие... ... упрощение инициализации и настройки компонентов, ... упрощение модульного тестирования, ... упрощение разработки и поддержки приложения в целом. * Читая эти предложения, делайте скидку на уровень профессионализма программистов, использующих фреймворк. Всегда можно что-нибудь сломать или неоптимально организовать, но в умелых руках Spring весьма эффективен.

Комментариев нет:

Отправить комментарий