И так... Для изучения 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":
В остальных частях можно оставить дефолтные значения либо изменить по своему усмотрению (кроме версии):
После чего откроется проект примерно с такой структурой:
В папке main хранятся пакеты, коды и файлы для работы основной части программы. В пакетах (в нашем случае org.example) будет хранится Java - код. Папка resources будет содержат конфигурационные файлы или файлы - ресурсы. Именно в этой папке мы создадим файл 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 версию. После чего откроется примерно следующее окно:
Нас интересует та часть, которая выделена красным цветом. Скопируем код и вставляем внутри тега <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 служит для создания бинов. О бинах расскажу чуть позже. После добавления зависимостей на правом верхнем углу появится значок:
Нажимаем на него и ждем пока Idea загрузит все эти зависимости. После загрузки в папке проекта "External Libraries" можем увидеть скачанные .jar файлы в которых содержатся Spring - зависимости:
На этом заканчиваем первый урок нашего курса. Таким образом мы коротко узнали:
- Что такое IoC / DI
- Как создать Spring проекты
- Как их настроить
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ