JavaRush /Java блог /Random UA /Spring – це не страшно, або як стартувати WEB-сервер зі S...
Павел
11 рівень

Spring – це не страшно, або як стартувати WEB-сервер зі Spring Boot за 5 хвилин

Стаття з групи Random UA
Зміст:
  1. Як стартувати WEB-сервер зі Spring Boot за 5 хвабон
  2. Як підключити базу даних для студентського проекту за 5 хвабон
  3. Як наповнити h2 базу даних (і трохи Hibernate)
  4. Як зробити проект лаконічним за допомогою Lombok
  5. Продовжуємо наповнювати БД
  6. Як поставити питання БД
  7. Огляд теми про лямбда висловлювання та streamAPI
  8. Мапінг відповідей БД
  9. Трохи про spring context
  10. Паттерн DTO
  11. REST-Controller
  12. Cookie & Headers
  13. Обробка винятків у контролерах Spring Boot
  14. Як розмістити Spring Boot проект на Heroku
Для початку створюємо мавен проект . У pom файл пишемо наступні залежності:
<properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java.version>1.8</java.version>
    </properties>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/><!-- lookup parent from repository -->
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
<properties> - це налаштування, саме тут вказаний рівень Java. <parent> каже, що всі залежності будуть викачані з версією, що відповідає зазначеній (2.2.0.RELEASE). <dependencies> містить той самий spring-boot-starter-web, який стартане. Версія тут не потрібна, тому що вона вказана у <parent> У пакеті java необхідно створити пакет: ru.java.rush . У створеному пакеті створюємо клас Applications і наповнюємо наступним вмістом:
package ru.java.rush;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Applications {

    public static void main(String[] args) {
        SpringApplication.run(Applications.class);
    }
}
Давайте стартанем проект за допомогою зеленої кнопки. Коли у консолі з'являться логи:
2020-12-05 21:05:27.598  INFO 2546 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-12-05 21:05:27.601  INFO 2546 --- [           main] ru.java.java_rush.Applications           : Started Applications in 0.971 seconds (JVM running for 1.446)
Це буде означати, що TomcatWebServer стартував на порту 8080. Давайте відкриємо браузер і наберемо http://localhost:8080/ Так як ніякої інформації сервер не надсилає, то відобразиться приблизно таке:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat Dec 05 21:36:10 MSK 2020
There was an unexpected error (type=Not Found, status=404).
No message available
Але сервер працює: спробуйте зупинити програму, а потім оновити сторінку браузера, і він скаже, що сторінку не знайдено. Ви тільки що написали програму на Java, яка піднімає веб-сервер! Теж без Spring зайняло б часу вдесятеро більше, а нервів — у тисячу! Загалом вивчайте Spring, не бійтеся, поступово рухайтеся до мети, і у вас все вийде! Тепер подивимося, як швидко підключити сюди навчальну базу. Основна мета циклу статей - показати, що не варто боятися пробувати вчитися Spring framework і Spring boot, це не так складно, як може здатися. Однак без знання JavaCore, і основних понять ООП(клас, інтерфейс, успадкування тощо) ваш час буде змарновано. Якщо у вас немає цих знань, не впадайте у відчай, 1 - 2 місяці навчання все виправлять, після того як освоїте повертайтеся сюди. Якщо не знаєте з чого почати, то візьміть це: «Java 8. Посібник для початківців. Герберт Шілдт». Цикл статей познайомить вас з основними сучасними практичними темами щодо Spring framework і Spring boot. Формат кожної статті передбачає один невеликий приклад (або приклад, що переходить на кілька статей), невелике пояснення і посилання на теорію або на інші приклади, так само всіляко заохочується самостійний пошук додаткової інформації на тему. Передбачається, що після закінчення циклу ви повинні будете вміти створити невеликий веб-додаток на основі технологій Spring framework та Spring boot. Для розуміння що таке Spring прочитайте зараз цю просту і зрозумілу статтю: Spring для лінивих. Основи, базові концепції та приклади з кодом. . Якщо шукаєте більш серйозну інформацію на тему, то ознайомтеся з наступним списком: Перекладні та не такі прості для розуміння, статті з Хабра: Що таке Spring Framework? Від впровадження залежностей до Web MVC Spring MVC: створення веб-сайтів і RESTful сервісів Перекладна документація , дуже рекомендую прямо зараз подивитися що там є Книги! Для початку потрібно ними обзавестися, читати, звичайно, слід невеликими порціями: Spring у дії Уоллс Крейг(Spring 3) – рекомендую почати саме з цієї книги, прочитавши лише перший розділ (оскільки інше вже застаріло), можна пошукати в інтернеті У мережі гуляє частковий переклад Spring у дії | Уоллс Крейг (Spring 5) - можна спробувати взяти її за основу, виклад оригінальної книги просте і з прикладами. Хорошим варіантом основного джерела знань є: Spring 5 для професіоналів Козміна Юліана, Харроп Роб – російською мовою, можна пошукати в інтернеті Книга об'ємна та академічна, щоб після прочитання двох сторінок у ній не розчаруватися, ви повинні це розуміти. Особисто я робив так: читав якусь частину в книзі (іноді неодноразово), а потім йшов шукати з цієї теми приклади в інтернеті.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ