Вітаю! Настав час познайомитися з основами розробки з таким загальнопопулярним та необхідним фреймворком як Spring.
Для початку роботи необхідно роз’яснити декілька основних понять на яких живе та процвітає фреймворк. Без базового розуміння наступного розібратись буде в рази складніше.
Spring Framework - побудований на принципі інверсіїї контролю. А паттерн ін’єкції залежностей реалізує принципи інверсіїї контролю в застосунку.
Inversion of Control (IoC) - інверсія контролю - принцип об’єктно орієнтованого програмування, що використовується для зменшення зв’язаності в програмному забезпеченні.
Він заснований на наступних принципах:
Dependency Injection (DI) - архітектурна модель та паттерн програмування ін’єкція залежностей - передача виконнаня задач стороннім бібліотекам. DI допомагає досягти слабкої зв’язуваності. Існує три способи впровадження залежностей: через конструктор, через сеттер та через інтерфейс.
Inversion of Control Container - це інструмент, що вставляє залежності в об’єкт і тим самим робить його готовим до використання. Класи Spring Inversion of Control container є частиною пакетів org.springframework.beans та org.springframework.context.
Головною метою патерна Inversion of Control в контексті Spring Framework є виключення залежностей компонентів чи класів застосунків від конкретних реалізацій додаткових інтерфейсів та делегуванні повноважень з управління створенням потрібних реалізацій Inversion of Control контейнера.
Головними перевагами Inversion of Control контейнера є:
ApplicationContext - це центральний інтерфейс Spring Framework, що забезпечує застосунок конфігураційними налаштуваннями. Є безліч реалізацій цього інтерфейсу, що дає різноманітність в можливостях налаштування застасунку. Декілька корисних інтерфейсів похідних від ApplicationContext - ConfigurableApplicationContext та WebApplicationContext.
Інтерфейс ApplicationContext забезпечує:
Java Bean - це java клас написаний за наступними правилами:
Spring Bean - це звичайний Java клас позначений як Spring Bean.
Spring Bean Scopes
Існує всього п’ять обмежень для Spring Bean:
Spring Bean Configuration
Фреймворк Spring дозволяє сконфігурувати бін в застосунку декількома способами:
Посилання:
1. spring.io
2. becomejavasenior.com
3. tutorialspoint.com/springu
Author's GitHub, LinkedIn
Для початку роботи необхідно роз’яснити декілька основних понять на яких живе та процвітає фреймворк. Без базового розуміння наступного розібратись буде в рази складніше.
Spring Framework - побудований на принципі інверсіїї контролю. А паттерн ін’єкції залежностей реалізує принципи інверсіїї контролю в застосунку.
Inversion of Control (IoC) - інверсія контролю - принцип об’єктно орієнтованого програмування, що використовується для зменшення зв’язаності в програмному забезпеченні.
Він заснований на наступних принципах:
- Модулі верхнього рівня не мають залежати від модулів нижнього рівня. І перші і останні мають залежати від абстракцій.
- Абстракції не мають залежати від деталей. Деталі мають бути залежними від абстракцій.
Dependency Injection (DI) - архітектурна модель та паттерн програмування ін’єкція залежностей - передача виконнаня задач стороннім бібліотекам. DI допомагає досягти слабкої зв’язуваності. Існує три способи впровадження залежностей: через конструктор, через сеттер та через інтерфейс.
Inversion of Control Container - це інструмент, що вставляє залежності в об’єкт і тим самим робить його готовим до використання. Класи Spring Inversion of Control container є частиною пакетів org.springframework.beans та org.springframework.context.
Головною метою патерна Inversion of Control в контексті Spring Framework є виключення залежностей компонентів чи класів застосунків від конкретних реалізацій додаткових інтерфейсів та делегуванні повноважень з управління створенням потрібних реалізацій Inversion of Control контейнера.
Головними перевагами Inversion of Control контейнера є:
- Управління залежностями.
- Спрощення повторного використаня класів та компонентів.
- Спрощення UNIT-тестування.
- Чистий, легкий код (класи не займаються створенням об’єктів.
ApplicationContext - це центральний інтерфейс Spring Framework, що забезпечує застосунок конфігураційними налаштуваннями. Є безліч реалізацій цього інтерфейсу, що дає різноманітність в можливостях налаштування застасунку. Декілька корисних інтерфейсів похідних від ApplicationContext - ConfigurableApplicationContext та WebApplicationContext.
Інтерфейс ApplicationContext забезпечує:
- Доступ до компонентів застосунку через фабрики бінів.
- Можливість завантаження файлу ресурсів в загальному виді.
- Можливість публікації івентів та реєстрації лісенерів.
- AnnotationConfigApplicationContext - для ініціалізації контексту та отримання бін при конфігурації проекту за допомогою анотацій.
- ClassPathXmlApplicationContext - для завантаження XML файлу з каталогу ресурсів та отримання об’єкту контейнера у випадку конфігурації Spring проекту за допомогою XML.
- FileSystemXmlApplicationContext - може завантажити файл конфігурації XML з будь-якого каталогу файлової системи.
- AnnotationConfigWebApplicationContext та XmlWebApplicationContext - для веб застосунків
Java Bean - це java клас написаний за наступними правилами:
- Клас повинен мати публічний конструктор без параметрів. Такий конструктор дозволяє інструментам створювати об'єкт без додаткових складностей з параметрами.
- Властивості класу повинні бути доступні через методи get, set, is, які відповідають стандартним згодам про імена. Це дозволить інструментам автоматично визначати і оновлювати вміст bean'ів.
- Клас повинен бути серіалізованим. Це дає можливість надійно зберігати та відновлювати стан bean незалежним від платформи і віртуальної машини способом.
- Він не повинен містити ніяких методів обробки подій.
Spring Bean - це звичайний Java клас позначений як Spring Bean.
Spring Bean Scopes
Існує всього п’ять обмежень для Spring Bean:
- singleton - створюється всього один екземпляр для кожного контейнера - значення за замовчування.
- prototype - на кожен запит повертається новий екземпляр біна.
- request - те ж що й попередній але для web застосунків.
- session - новий екземпляр буде створений для кожної HTTP сесії.
- global-session використовується для створення біна в глобальній сесії для Portlet застосунків.
Якщо даний набір не задовольняє ваших потреб то ви можете створити власний scope для біна, але в більшості випадків цього достатньо.
Spring Bean Configuration
Фреймворк Spring дозволяє сконфігурувати бін в застосунку декількома способами:
- XML Based Configuration - створення XML файлу з конфігурацією бінів, найдавніший спосіб
- Annotation Based Configuration - конфігурація бінів методом навішування аннотацій на методи та класи.
- Java Based Configuration - починаючи з версії 3.0 є можливість зконфігурувати бін. використовуючи Java код
- Groovy - використовую мову програмування groovy.
Посилання:
1. spring.io
2. becomejavasenior.com
3. tutorialspoint.com/springu
Author's GitHub, LinkedIn
Комментариев нет:
Отправить комментарий