JavaRush /Java блог /Random UA /Spring. Урок 1. IoC/DI
Umaralikhon
3 рівень
Красноярск

Spring. Урок 1. IoC/DI

Стаття з групи Random UA
І так... Для вивчення Spring'а знадобиться знання Java core, Intellij IDEA Ultimate і трохи терпіння. Курс складатиметься з кількох занять. Кожне заняття описуватиме окрему тему. Так само я б дуже порадив писати конспекти. Так, ніхто вам за це не поставить залік за семестр. Просто під час написання конспекту працюють усі частини мозку, призначені для запам'ятовування інформації. Досить води. Починаємо. Inversion of Control (IoC) && Dependency Injection (DI) Для початку визначимо дві найважливіші терміни, як Інверсія управління - Inversion of Control (IoC) та Впровадження залежностей - Dependency Injection (DI). IoC- це принцип ОВП, що використовується зменшення пов'язаності між класами і об'єктами. Програміст у потрібні точки програми розмістить необхідний код і не хвилюється як і коли має працювати розміщений код. Говорячи простою мовою, при використанні IoC кодом керуватиме фреймворк, а не програміст. DI - робить об'єкти докладання слабко залежним один від одного. Тобто про ініціалізацію об'єктів опікуватиметься зовнішній механізм розроблений програмістом. При використанні DI програміст працюватиме не на "рівні класів", а на "рівні інтерфейсів". Таким чином, залежності між об'єктами будуть зведені до мінімуму. Для початку створимо простий maven проект. Для цього вибираємо пункт "Create new Project" та з меню вибирає "Maven": Курс Spring - IoC / DI - 1 В інших частинах можна залишити дефолтні значення або змінити на свій розсуд (крім версії): Курс Spring - IoC / DI - 2 Після чого відкриється проект приблизно з такою структурою: Курс Spring - IoC / DI - 3 У папці main зберігаються пакети, коди та файли для роботи основної частини програми. У пакетах (у нашому випадку org.example) зберігається Java - код. Папка ресурсів містить конфігураційні файли або файли - ресурси. Саме в цій папці ми створимо файл applicationContext.xml, в якому описати наші біни (про це трохи пізніше). У папці Test зберігаються класи з тестуванням. Ми не торкатимемося цієї теми. Одним з найважливіших файлів є файл pom.xml. У цьому файлі описуватиметься Spring - залежність для нашого проекту. Саме з цього файлу ми розпочнемо роботу. Спочатку відкриємо цей файл. Файл матиме приблизно такий вигляд:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>IoC</artifactId>
    <version>1.0-SNAPSHOT</version>

  <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

</project>
У цей файл додаватимемо необхідні залежності (dependencies). Для цього переходимо на сайт mvnrepository.com , в якому знаходяться всі залежності для управління проектом maven. У пошуковій частині набираємо "Spring context". Серед списку результатів вибираємо "Spring context" (саме "Spring context" від apache а не інше). Потім вибираємо версію, бажано RELEASE версію. Після цього відкриється приблизно наступне вікно: Курс Spring - IoC / DI - 5 Нас цікавить та частина, яка виділена червоним кольором. Скопіюємо код і вставляємо всередині тега <dependencies></dependencies>. Такі ж дії виконуємо і для залежностей "Spring bean" та "Spring core". У результаті файл pom.xml повинен мати такий вигляд:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>IoC</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

</project>
Коротко про все. У Spring core зберігаються всі базові операції для роботи фреймворку. Spring context - створює та зберігає об'єкти класів для роботи DI/IoC. А Spring beans слугує для створення бінів. Про біни розповім трохи пізніше. Після додавання залежностей на верхньому правому куті з'явиться значок: Курс Spring - IoC / DI - 6 Натискаємо на нього і чекаємо поки Idea завантажить всі ці залежності. Після завантаження в папці проекту "External Libraries" можемо побачити завантажені .jar файли в яких містяться Spring - залежності: Курс Spring - IoC/DI - 7 На цьому закінчуємо перший урок нашого курсу. Таким чином ми коротко дізналися:
  • Що таке IoC/DI
  • Як створити Spring проекти
  • Як їх налаштувати
Повний вихідний код можна знайти за посиланням . Мій GitHub аккаунт Зміст курсу Далі буде...
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ