SpringBoot… в SpringBoot сейчас много шума. Так что же такое SpringBoot?
SpringBoot — это новый весенний портфельный проект, в котором тщательно продумано создание готовых приложений Spring за счет значительного сокращения объема требуемой конфигурации. Spring Boot выводит соглашение о стиле конфигурации на новый уровень, регистрируя конфигурации по умолчанию автоматически на основе библиотек classpath, доступных во время выполнения .
Ну … вы, возможно, уже читали такое введение в SpringBoot во многих блогах. Итак, позвольте мне подробнее рассказать о том, что такое SpringBoot и как он помогает быстрее разрабатывать приложения Spring.
Spring Framework был создан Родом Джонсоном, когда многие разработчики Java борются с EJB 1.x / 2.x для создания корпоративных приложений. Spring Framework упрощает разработку бизнес-компонентов с использованием концепций внедрения зависимостей и аспектно-ориентированного программирования. Spring стал очень популярным, и многие другие модули Spring, такие как SpringSecurity, Spring Batch, Spring Data и т. Д., Становятся частью портфолио Spring. Поскольку в Spring добавляется все больше и больше функций, настройка всех модулей Spring и их зависимостей становится утомительной задачей. Добавление к этому Spring предоставляет как минимум 3 способа сделать что-нибудь! Некоторые люди видят в этом гибкость, а другие — в замешательстве.
Постепенно настройка всех модулей Spring для совместной работы стала большой проблемой. Команда Spring придумала множество подходов, чтобы уменьшить объем необходимой конфигурации, представив Spring XML DSL, Annotations и JavaConfig.
В самом начале я помню, как настраивал большую кучу объявлений версий jar в разделе и много объявлений. Затем я научился создавать архетипы maven с базовой структурой и минимально необходимыми конфигурациями. Это уменьшило много повторяющихся работ, но не исключило полностью.
Независимо от того, пишете ли вы конфигурацию вручную или генерируете каким-либо автоматическим способом, если есть код, который вы можете увидеть, вам придется поддерживать его.
Поэтому, используете ли вы XML, Annotations или JavaConfig, вам все равно необходимо настроить (скопировать и вставить) ту же настройку инфраструктуры еще раз.
С другой стороны, J2EE (который давно умер) появился как JavaEE, и с JavaEE6 стало легко (по сравнению с J2EE и JavaEE5) разрабатывать корпоративные приложения с использованием платформы JavaEE.
Также JavaEE7, выпущенный со всеми классными CDI, WebSockets, Batch, поддержкой JSON и т. Д., Стал еще более простым и мощным. С JavaEE вам не нужно так много конфигурации XML, и ваш размер файла war будет в килобайтах (действительно, для приложений не-helloworld / non-stagehow!)
Естественно, что это «соглашение о конфигурации» и «вам не нужно склеивать API, appServer уже сделал это», аргументы стали главными преимуществами JavaEE по сравнению с Spring. Тогда команда Spring решает эту проблему с помощью SpringBoot!
Теперь пришло время JavaEE показать, что является аналогом SpringBoot в JavaEE land JBoss Forge ?? Я люблю эту вещь Spring против JavaEE, которая приводит к рождению мощных инструментов, которые в конечном итоге упрощают жизнь разработчиков!
Много раз нам нужна подобная инфраструктура с использованием одних и тех же библиотек. Например, возьмите веб-приложение, в котором вы сопоставляете шаблон URL DispatcherServlet с «/», внедрите веб-сервисы RESTFul, используя библиотеку Jackson JSON с бэкэндом Spring Data JPA. Аналогичным образом могут быть приложения пакетной или пружинной интеграции, которым требуется аналогичная конфигурация инфраструктуры.
SpringBoot на помощь . SpringBoot просматривает файлы jar, доступные для пути к классам среды выполнения, и регистрирует bean-компоненты для вас с разумными значениями по умолчанию, которые можно переопределить с помощью явных настроек. Также SpringBoot конфигурирует эти bean-компоненты только тогда, когда доступны jar-файлы, и вы не определили ни один такой тип bean-компонента . В целом SpringBoot предоставляет общую инфраструктуру, не требуя какой-либо явной настройки, но позволяет разработчику переопределять при необходимости.
Чтобы упростить задачу, команда SpringBoot предоставляет множество начальных проектов, которые предварительно сконфигурированы с часто используемыми зависимостями. Например, начальный проект Spring Data JPA поставляется с JPA 2.x с реализацией Hibernate вместе с настройкой инфраструктуры Spring Data JPA. Spring Web Starter поставляется с Spring WebMVC, Embedded Tomcat, Jackson JSON, Logback Setup.
Ааа .. хватит теории .. давай прыгнем на кодирование.
Я использую последнюю версию среды IDE STS-3.5.1, которая предоставляет гораздо больше вариантов начального проекта, таких как Facebbok, Twitter, Solr и т. Д., Чем его более ранняя версия.
Создайте стартовый проект SpringBoot, перейдя в меню «Файл» -> «Создать» -> «Начальный проект Spring» -> выберите « Веб и привод» и предоставьте другие необходимые сведения и нажмите «Готово».
Это создаст веб-проект Spring Starter со следующими pom.xml и Application.java.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
<? 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" < modelVersion >4.0.0</ modelVersion > < groupId >com.sivalabs</ groupId > < artifactId >hello-springboot</ artifactId > < version >1.0-SNAPSHOT</ version > < packaging >jar</ packaging > < name >hello-springboot</ name > < description >Spring Boot Hello World</ description > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.1.3.RELEASE</ version > < relativePath /> </ parent > < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-actuator</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-test</ artifactId > < scope >test</ scope > </ dependency > </ dependencies > < properties > < project.build.sourceEncoding >UTF-8</ project.build.sourceEncoding > < start-class >com.sivalabs.springboot.Application</ start-class > < java.version >1.7</ java.version > </ properties > < build > < plugins > < plugin > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-maven-plugin</ artifactId > </ plugin > </ plugins > </ build > </ project > |
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
package com.sivalabs.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan @EnableAutoConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Application. class , args); } } |
Идите дальше и запустите этот класс как отдельный класс Java. Он запустит встроенный сервер Tomcat через порт 8080. Но мы не добавили никаких конечных точек для доступа, давайте продолжим и добавим простую конечную точку REST.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
@Configuration @ComponentScan @EnableAutoConfiguration @Controller public class Application { public static void main(String[] args) { SpringApplication.run(Application. class , args); } @RequestMapping (value= "/" ) @ResponseBody public String bootup() { return "SpringBoot is up and running" ; } } |
Теперь укажите вашему браузеру http: // localhost: 8080 /, и вы должны увидеть ответ «SpringBoot запущен и работает».
Помните, что при создании проекта мы также добавили стартовый модуль Actuator . С Actuator вы можете получить много интересных фактов о вашем приложении.
Попробуйте получить доступ к следующим URL-адресам, и вы увидите множество конфигураций среды выполнения, предоставляемых SpringBoot.
- Http: // Localhost: 8080 / бобы
- Http: // Localhost: 8080 / метрики
- HTTP: // локальный: 8080 / след
- HTTP: // локальный: 8080 / окр
- Http: // Localhost: 8080 / отображения
- HTTP: // локальный: 8080 / автонастройки
- HTTP: // локальный: 8080 / свалка
SpringBoot Actator заслуживает отдельного поста в блоге, чтобы охватить его огромное количество функций, о которых я расскажу в своих следующих постах.
Я надеюсь, что эта статья предоставит вам базовые сведения о SpringBoot и о том, как он упрощает разработку приложений Spring.
Подробнее о SpringBoot в следующих статьях .
Ссылка: | SpringBoot: Представляем SpringBoot от нашего партнера по JCG Сивы Редди в блоге « Мои эксперименты по технологии» . |