Статьи

Spring Boot — правильный ботинок для вас!

Нужна небольшая весна в вашем шаге? Устали от всех этих тяжелых веб-серверов и развертывания файлов WAR? Ну, тебе повезло. Spring Boot принимает взвешенный взгляд на создание готовых приложений Spring. Spring Boot поддерживает конвенциональность по сравнению с конфигурацией и предназначена для того, чтобы вы как можно быстрее начали работать.

В этом блоге я расскажу вам пошаговый процесс запуска Spring Boot на вашем компьютере.

Просто наденьте их и зашнуруйте …

Spring Boot позволяет легко создавать автономные производственные приложения Spring-класса, которые вы можете «просто запустить». Вы можете начать с минимальными усилиями из-за того, что он принимает самоуверенный взгляд на платформу Spring и сторонние библиотеки. Большинству приложений Spring Boot требуется очень небольшая конфигурация Spring.

Эти ботинки созданы для прогулок … может быть, бег

Итак, самая большая вещь в Spring Boot — это возможность быстро начать работу. Вам не нужно устанавливать веб-сервер, такой как JBoss, Websphere или даже Tomcat. Все, что вам нужно сделать, это извлечь нужные библиотеки, аннотировать и запускать. Если вы собираетесь выполнять множество проектов Spring Boot, я настоятельно рекомендую использовать доступный Spring Tool Suite. В нем есть несколько замечательных функций, позволяющих легко управлять загрузочными проектами.

Конечно, вы можете выбирать между Maven или Gradle для управления зависимостями и сборками. Мои примеры будут в Maven, поскольку это то, с чем я знаком. Все зависит от ваших настроек.

Много разных стилей на выбор

Отличительной особенностью Spring Boot является то, что он отлично работает с другими предложениями Spring. Ух ты, пойди разберись? Вы можете использовать Spring MVC, Jetty или Thymeleaf, просто добавив их в свои зависимости, и Spring Boot автоматически добавит их в.

Каждый день сапоги

Spring Boot хочет упростить вам задачу. Вы можете сделать целый ряд вещей с ним. Вот список некоторых из основных моментов.

  • Spring Boot позволяет упаковать приложение в отдельный JAR-файл со встроенным полным сервером Tomcat
  • Spring Boot позволяет упаковать приложение как WAR.
  • Конфигурация основана на том, что находится в пути к классам (MySQL DB в пути, он настроит его для вас)
  • У него установлены значения по умолчанию (поэтому вам не нужно их настраивать)
  • Легко перезаписывается путем добавления в classpath (добавьте зависимость H2, и она переключится)
  • Давайте новые разработчики спешно изучают веревки и вносят изменения позже, когда узнают больше.

Детские ботинки

Но помните, цель этого блога — просто познакомить вас с тем, как запустить Spring Boot на вашем компьютере. Это будет довольно просто и ванильно. Цель состоит в том, чтобы вы начали. Мы не пытаемся закодировать новое приложение Uber или что-то здесь. Детские шаги, ребята! Мы просто хотим согреть ноги. Мы все знаем те уроки, которые бросают в нас тонны вещей и просто затушевывают вещи. Не здесь.

Таким образом, чтобы начать работу, проще всего извлечь учебный код из самой Spring. Это отличное начало. Приятно видеть, что происходит, не бросая в вас всю библиотеку Spring.

Ботинки-клоны… следите за своей целью!

Прежде всего, давайте клонируем пример Spring, найденный здесь .

1
git clone https://github.com/spring-guides/gs-spring-boot.git

Мы не будем вдаваться в шаги по его настройке в IDE, так как у каждого будут свои предпочтения.

Строительные сапоги

Давайте разберемся немного. О чем эти аннотации?

@SpringBootApplication — это удобная аннотация, которая добавляет все следующее:

  • @Configuration класс как источник определений компонентов для контекста приложения.
  • @EnableAutoConfiguration указывает Spring Boot начинать добавление bean-компонентов на основе настроек пути к классам, других bean-компонентов и различных настроек свойств.
  • Обычно вы добавляете @EnableWebMvc для приложения Spring MVC, но Spring Boot добавляет его автоматически, когда он видит spring-webmvc в пути к классам. Это помечает приложение как веб-приложение и активирует ключевые варианты поведения, такие как настройка DispatcherServlet .
  • @ComponentScan говорит Spring искать другие компоненты, конфигурации и службы в пакете hello, позволяя ему находить контроллеры.

Вау, мне всегда нравились качественные встроенные модули при поиске нового дома! Но что на самом деле происходит за этими блестящими новинками?

Метод main() вызывает метод Spring Boot SpringApplication.run() для запуска.

Мы упомянули (или вы заметили), что вам не пришлось возиться с XML? Какой бонус! Нет больше глупостей файла web.xml . Больше не нужно удивляться, если я добавлю правильный тег в файл, и мне интересно, в чем проблема с абзацем нечитаемого сообщения об ошибке, в котором больше ничего не говорится. Это 100% чистая Java. Никакой конфигурации или сантехники не требуется. Они сделали это для вас. Как мило с их стороны!

Как только он настроен и готов к тому, чтобы вы начали редактирование, давайте кратко рассмотрим файл Application.java . Здесь вы найдете работающий main класс. Он имеет аннотацию @SpringBootApplication . Это ключевая аннотация, которая делает это приложение загрузочным.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package hello;
 
import java.util.Arrays;
 
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
 
@SpringBootApplication
public class Application {
 
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
 
    @Bean
    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
        return args -> {
 
            System.out.println("Let's inspect the beans provided by Spring Boot:");
 
            String[] beanNames = ctx.getBeanDefinitionNames();
            Arrays.sort(beanNames);
            for (String beanName : beanNames) {
                System.out.println(beanName);
            }
 
        };
    }
 
}

Теперь, чтобы запустить это! Если вы используете пакет STS (и правильно его скомпилировали), вы увидите его на панели Boot Dashboard. Для всех остальных, либо щелкните правой кнопкой мыши в среде IDE и выберите «Запуск от имени => Java-приложение», либо перейдите к своему любимому инструменту командной строки. Используйте следующие команды.

Maven:

1
mvn package && java -jar target/gs-spring-boot-0.1.0.jar

Gradle:

1
./gradlew build && java -jar build/libs/gs-spring-boot-0.1.0.jar

Вывод покажет нормальный запуск Spring встроенного сервера, а затем он перебирает все компоненты и выдает их вам!

Ты сделал это! Вы связали свою первую пару Spring Boots.

Ботинки на дисплее

Чтобы сделать продажу или просто получить приз, в этом примере используется метод CommandLineRunner помеченный как @Bean запускается при запуске. Он извлекает все компоненты, которые были созданы вашим приложением или были автоматически добавлены благодаря Spring Boot. Это сортирует их и печатает их. Вы можете поместить другую информацию о запуске или сделать немного другой работы, если хотите.

Сапоги онлайн

Делая покупки для правильного ботинка, мы хотим, чтобы хорошие были в комплекте с нашей любимой парой джинсов, или для женщин — хорошая юбка, верно? Well Boot предоставляет простой способ вывести ваши ботинки в мир, чтобы их могли увидеть другие. Ну, нам нужно нанять Controller для этого. Как удобно: скачанный нами код Spring уже есть для нас.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
package hello;
 
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
 
@RestController
public class HelloController {
 
    @RequestMapping("/")
    public String index() {
        return "Greetings from Spring Boot!";
    }
 
}

Здесь важнее всего две вещи: аннотации @RestController и @RequestMapping вы видите.

@RestController — это подсознательное сообщение о том, что это время сна. Эррр, подожди, извини, я засыпал. Нет, это означает, что у нас есть RESTful-контроллер, который ждет, смотрит, слушает вызов нашего приложения.

@RequestMapping — это обозначение URL, которое вызывает конкретный метод. Таким образом, в данном примере это «индекс» приложения. Пример здесь просто возвращает текст. Вот классная вещь; мы можем вернуть практически все, что вы хотите вернуть.

У JSON были хорошие ботинки на Арго?

Наконец, я думаю, что большинство искателей приключений в Spring Boot сейчас используют его как конечную точку для своих приложений. Есть целый ряд различных вариантов того, как вы можете сделать это. Либо JSON предоставил данные или XML-решения. Сейчас мы сосредоточимся только на одном. Джексон — хороший легкий инструмент для выполнения вывода JSON в сценарий вызова.

Джексона по умолчанию можно найти на пути к классам Spring Boot. Убедитесь сами:

1
mvn dependency:tree`

или же

1
./gradlew dependencies

Давайте уже добавим немного пизаз в эти ботинки! Добавьте новый класс, где бы вы хотели, в вашем источнике. Просто POJO.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
public class Greeting {
 
    private final long id;
    private final String content;
 
    public Greeting(long id, String content) {
        this.id = id;
        this.content = content;
    }
 
    public long getId() {
        return id;
    }
 
    public String getContent() {
        return content;
    }
 
}

Теперь возвращайся к своему Контроллер и вставьте это в:

1
2
3
4
5
6
7
private static final String template = "Ahoy, %s!";
private final AtomicLong counter = new AtomicLong();
 
@RequestMapping(method=RequestMethod.GET)
    public @ResponseBody Greeting sayHello(@RequestParam(value="name", required=false, defaultValue="Argonaut") String name) {
        return new Greeting(counter.incrementAndGet(), String.format(template, name));
    }

Теперь перезапустите приложение Boot. Вернитесь в браузер и вместо / перейдите в hello-world . Вы должны увидеть какой-то потрясающий вывод JSON. Если вы это сделали, то вы уже на пути к созданию конечных точек в Spring Boot и Jackson.

Арго нужен еще один порт

Поскольку многие люди пишут конечные точки и работают несколько сайтов, вы, вероятно, захотите изменить порт по умолчанию 8080 на другой. Так что самый простой и простой способ — добавить файл application.properties в src/main/resources .

Все, что нужно, это:

1
server.port = 8090

Очень просто. Взвесьте якорь и отправляйтесь в плавание!

Заключение учебного лагеря

Таким образом, вы можете увидеть, как легко добиться успеха с Spring Boot. Нам не нужно было много делать с настройкой, чтобы действительно быстро начать работу. Мы избегали страшных XML-файлов и добавили только небольшой файл свойств. Встроенные модули очень хороши, чтобы уже иметь в стеке. Джексон предоставляет простое в использовании преобразование JSON для тех из нас, кто хочет предоставить конечные точки для наших блестящих интерфейсов.

Опять же, Spring, похоже, находит способ сделать жизнь разработчика проще. Этот блог был прост для цели. В наших новых ботинках есть много разных путей. Если вы хотите использовать микросервисы, построить традиционный монолит или какой-то другой поворот, который может быть там, вы можете увидеть, как Spring Boot может помочь вам начать работу в спешке.

Ссылка: Spring Boot — правильный ботинок для вас! от нашего партнера JCG Мэтта Маккэндлеса из блога Keyhole Software .