Cats in the spring.Scottish fold gray cat in a sunny spring blooming garden.
Зміст
Фреймворк Spring спрощує та прискорює програмування на Java. Це дуже популярний Java-фреймворк.
Spring — це фреймворк із відкритим вихідним кодом. Його написано Родом Джонсоном та випущено у 2003 році за ліцензією Apache 2.0.
Spring дозволяє створювати програми зі звичайних об’єктів Java (plain old Java objects, POJO) і застосовувати до них корпоративні сервіси. Ця можливість стосується моделі програмування Java SE і повністю або частково — Java EE.
Програми Java зазвичай складаються з об’єктів, які працюють спільно. Отже, об’єкти програми залежать один від одного.
Інверсія керування (Inversion of Control, IoC) надає стандартизовані способи компонування окремих об’єктів у застосунок, який є готовим до роботи. Шаблони проєктування представлено в цьому фреймворку як об’єкти першого класу, які можна інтегрувати у власний застосунок.
Ще однією концепцією в основі Spring Framework є аспектно-орієнтоване програмування (Aspect Oriented Programming, AOP).
У більшості корпоративних програм реалізовано загальні поняття, які стосуються різних типів об’єктів і модулів. Це, наприклад, ведення журналів, керування транзакціями, перевірка даних тощо.
В об’єктно-орієнтованому програмуванні модульність програми досягається за рахунок класів, а в аспектно-орієнтованому — за рахунок аспектів.
Spring AOP усуває залежності загальних завдань від класів, чого неможливо досягти під час використання звичайної моделі об’єктно-орієнтованого програмування.
Наприклад, може існувати окремий клас для ведення журналів, а функціональні класи мають викликати ці методи для заповнення журналів.
Нижче наведено основні концепції AOP.
Aspect | Аспект є класом, що реалізує загальні для багатьох класів поняття, наприклад, керування транзакціями. Аспекти можуть бути звичайними класами, які налаштовуються з використанням XML-конфігурації Spring. Також можна скористатися інтеграцією Spring AspectJ, щоб визначити клас як аспект за допомогою анотації @Aspect. |
Join point | Точка з’єднання є певною точкою у застосунку. У Spring AOP точка з’єднання завжди означає виконання методу. |
Advice | Рекомендації є методами, які виконуються після досягнення певної точки з’єднання з відповідним набором точок з’єднання. |
Pointcut | Набір точок з’єднання є виразом, який зіставляється з точками з’єднання, щоб визначити, чи слід виконувати рекомендацію. Для цих виразів у Spring використовується мова виразів AspectJ. |
Target Object | Це цільові об’єкти, до яких застосовуються рекомендації. Spring AOP реалізується з використанням проксі часу виконання, тому такий об’єкт завжди доступний через проксі. Це означає, що підклас створюється під час виконання, цільовий спосіб перевизначається й у нього включається рекомендація залежно від конфігурації. |
Проксі AOP | Реалізація AOP в Spring використовує динамічний проксі JDK для створення проксі-класів для цільових класів і виклику рекомендацій. Такі класи називаються проксі-класами AOP. |
Weaving | Це процес зв’язування аспектів з іншими об’єктами для створення проксі-об’єктів із рекомендаціями. Це може відбуватися під час компіляції, завантаження чи виконання. Spring AOP здійснює зв’язування під час виконання. |
Spring Framework є платформою для розробки, яка складається з безлічі міні-платформ, бібліотек і розширень. Одне з її розширень — Spring Boot. Spring Boot спрощує та прискорює роботу зі Spring.
Розширення Spring Boot полегшує процес налаштування програми за рахунок попередньо налаштованих компонентів. Воно більше підходить для створення мікросервісів і хмарних програм завдяки своїй полегшеній архітектурі й швидкому запуску.
За допомогою Spring Boot можна легко створювати автономні програми виробничого рівня на основі Spring, які можна «просто запустити». Завдяки потужним функціям і простоті використання цього розширення багато розробників обирають його для створення веб- або мобільних застосунків.
Якщо вам не потрібна унікальна конфігурація, то для створення проєкту можна використовувати Spring Boot. Для додавання залежностей ви можете скористатися системою анотацій Spring Framework. Водночас у вас залишиться доступ до всіх можливостей Spring Framework.
У цій статті ми розглянемо процес створення й запуску найпростішої програми на Spring.
Spring підтримується багатьма середовищами розробки (IDE). Найчастіше використовуються IntelliJ IDEA, Spring Tools для різних IDE, Visual Studio Code, Eclipse та багато інших. Детальні інструкції щодо завантаження, встановлення та налаштування ви знайдете на сайтах IDE.
Що стосується Java Development Kit (JDK), для розробки на Spring рекомендується використовувати BellSoft Liberica JDK версії 17. Завантажте та встановіть дистрибутив для своєї операційної системи.
Відкрийте сайт start.spring.io для створення вебпроєкту:
Робота з IDE
Якщо ви користуєтесь IDE з підтримкою Spring, створити каркас проєкту можна в IDE.
Попередні вимоги
Для розробки програми Spring Boot у Visual Studio Code потрібно встановити таке:
Створення проєкту
Розширення Spring Initializr дозволяє знаходити залежності та генерувати нові проєкти Spring Boot.
Після встановлення Spring Boot Extension Pack відкрийте палітру команд (Command Palette, Ctrl+Shift+P), введіть Spring Initializr, щоб почати генерувати проєкт Maven або Gradle, і виконайте інструкції майстра.
Hello
У цій статті ми скористаємось прикладом з офіційного сайту.
Відкрийте файл DemoApplication.java
, що знаходиться в каталозі src/main/java/com/example/demo
.
Додайте в нього анотації та метод, як зазначено нижче:
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @GetMapping("/hello") public String hello(@RequestParam(value = "name", defaultValue = "World" return String.format("Hello %s!", name); } }
Метод hello()
приймає рядковий аргумент name
, а потім комбінує його зі словом Hello
у коді. Якщо в запиті буде вказано ім’я Nika
, то відповідь буде такою: Hello Nika
.
Анотація @RestController
вказує Spring, що цей код описує кінцеву точку, яка буде доступною у мережі. @GetMapping(“/hello”)
показує, що для відповіді на запити, які надсилано на адресу http://localhost:8080/hello
, необхідно викликати метод hello()
.
Анотація @RequestParam
вказує Spring, що в запиті може бути вказано значення параметра name
, але якщо його не вказано, замість нього за замовчуванням використовуватиметься слово World
.
Відкрийте папку проєкту (наприклад, demo) й запустіть команду:
Linux:
./mvnw spring-boot:run
Windows :
mvnw.cmd spring-boot:run
Результат:
Останні два рядки кажуть про те, що Spring запущено. Вбудований у Spring Boot сервер Apache Tomcat працює як вебсервер та перехоплює запити, що надсилаються на порт 8080 локального хоста.
Відкрийте веб-браузер і введіть його в адресному рядку http://localhost:8080/hello
.
Ви побачите таку відповідь:
Якщо ж в адресі ми вкажемо параметр name
і його значення (додамо ?name=Nika
наприкінці адреси), то отримаємо таку відповідь:
В EPAM Systems повідомили про зміни в керівництві. Засновник і СЕО компанії Аркадій Добкін перейде…
Python продовжує стрімко зростати в рейтингу популярності мов програмування TIOBE, досягнувши в травні 2025 року…
Бенчмаркінг часу злому паролів на графічних процесорах, який компанія Hive Systems проводить вже 5-й рік…
Компанія Huawei Technologies представила ноутбук, який працює під управлінням нової операційної системи HarmonyOS Next (HarmonyOS…
У FAVBET Tech був період, коли технічний борг одного з модулів системи почав серйозно впливати…
Співробітникам Microsoft заборонено використовувати DeepSeek через проблеми безпеки даних та побоювання китайської пропаганди. Про це…