предисловие
Я думаю, что друзья, которые занимаются Java-разработкой, слышали об этом.SSM
фреймворк, это еще молодой, старые уже даже пережилиSSH
, это звучит немного страшно, ха-ха. Например, я испыталSSH
В конце той эпохи не было пути, очень беспомощного.
Конечно, ни SSM, ни SSH сегодня не в центре внимания.Spring Boot
, привлекающий внимание фреймворк, от большого, заменил Spring BootSSM
серединаSS
характер.
Сегодня в этой статье речь пойдет о Spring Boot, я впервые использую прямой вызов爽
с кадр.
Что такое Spring Boot?
Spring Boot
— это совершенно новый фреймворк, предоставленный командой Pivotal.Spring Boot
все основано наSpring Framework 5.0
Отправная точка разработанного проекта.Spring Boot
разработан, чтобы заставить вас бежать как можно быстрееSpring
приложения и минимизировать ваши файлы конфигурации, насколько это возможно.
Цель дизайна Spring Boot проста в одном предложении: упростить начальный процесс создания и разработки приложений Spring.
По своей сути Spring Boot представляет собой набор библиотек, которые могут использоваться любой системой сборки проекта. Оно использует "соглашение о конфигурации” (в проекте много конфигураций, а также встроенная пользовательская конфигурация) концепция, позволяющая быстро запустить и запустить ваш проект.
соглашение о конфигурацииКак это понимать? На самом деле, проще говоря, Spring Boot имеет встроенное множество распространенных конфигураций в реальной разработке в начале своего построения, и только малая часть конфигурации должна быть настроена самими разработчиками.
Как создать проект Spring Boot?
На самом деле существует много способов собрать проект SpringBoot, два наиболее распространенных из них следующие:
- Создайте проект Maven, самостоятельно импортируйте зависимости, создайте классы запуска и файлы конфигурации.
- Прямо в ИДЕЕ
Spring Initializr
Создайте проект.
Первый метод не подходит для начинающих, сегодня я продемонстрирую второй метод сборки проекта Spring Boot.
Первый шаг — выбрать в IDEAFile-->NEW-->Project
,выберитеSpring Initializr
, указавJDK
Версия1.8
,ПотомNext
. Как показано ниже:
На втором шаге указываются координаты Maven, имя пакета, версия JDK и другая информация, а затемNext
,Как показано ниже:
Третий шаг — выбор зависимостей и нужной вам версии Spring Boot.Адаптация Spring Boot к каждому фреймворку основана наstarter
Кстати, здесь мы выбираем то, что требуется для WEB-разработкиstarter
Вы можете, как показано ниже:
Четвертый шаг указывает имя проекта, путь можно заполнить, нажмитеFinish
Подождите, пока создание пройдет успешно, как показано ниже:
Создайте успешный проект, как показано ниже:
один из нихDemoApplication
Это стартовый класс проекта, который имеетmain()
Метод используется для запуска Spring Boot.application.properties
это файл конфигурации Spring Boot.
На этом этапе вы можете начать проект, вDemoApplication
бегатьmain
Метод можно запустить, и запуск прошел успешно, как показано ниже:
Поскольку в SpringBoot по умолчанию встроен Tomcat, порт по умолчанию для запуска —8080
.
Первая программа Hello World
Изучение любой технологии всегда должно приветствовать мир, ха-ха...
Поскольку это WEB-разработка, напишите интерфейс, на который ссылались при его создании ранее.WEB
изstarter
, если ссылки нет, то ее можно найти вpom.xml
Импортируйте следующие зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- напишите один ниже
HelloWorldController
следующим образом:
package com.example.demo.controller;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String helloWorld(){
return "Hello World";
}
}
@RestController
: отметить это какcontroller
,Да@Controller
а также@ResponseBody
Коллекция этих двух аннотаций.
@RequestMapping
: указать сопоставление
Приведенные выше две аннотации относятся к Spring, поэтому я не буду здесь вдаваться в подробности.
Поскольку встроенный порт Tomcat по умолчанию8080
, так что начните проект, посетитеhttp://127.0.0.1:8080/hello
Вот и все.
зависимая интерпретация
в проекте Spring Bootpom.xml
Существует такая зависимость, как показано ниже:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/>
</parent>
<parent>
Вы знаете, что означает этот ярлык.父亲
Да, основное назначение такого тега — контроль версий. это введениеWEB
модульstarter
Когда не нужно указывать номер версии<version>
Причина для ярлыка, потому что вspring-boot-starter-parent
Это было указано в отношениях, похожих на отношения наследования, отец предоставил их вам, вам нужно только выбрать, использовать их или нет.
Зачем вводитьspring-boot-starter-web
готовые к использованиюSpring mvc
функция?
Это действительно сложный вопрос для понимания, чтобы понять эту проблему, давайте взглянем наspring-boot-starter-web
От чего зависит этот лаунчер? следующим образом:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
Вы должны понять, когда увидите это.spring-boot-starter-web
этоstarter
Собственно, внутреннее введениеSpring
,springmvc
,tomcat
Конечно, вы можете напрямую использовать функции Spring MVC.
Что такое файл конфигурации?
сказал раньшеapplication.properties
Это файл конфигурации Spring Boot, так что же именно настроено в этом файле конфигурации?
На самом деле, чтобы иметь возможность адаптироваться к каждому компоненту, Spring Boot предоставитstarter
, но некоторая информация этих лаунчеров не может быть записана внутри насмерть, например логин и пароль базы данных, которые должны быть указаны разработчиком, поэтому они написаны в единомProperties
В классе, когда запускается Spring Boot, согласно前缀名+属性名称
читать из файла конфигурации, например.WebMvcProperties
, который определяет некоторые конфигурации, связанные с Spring Mvc, с префиксомspring.mvc
. следующим образом:
@ConfigurationProperties(prefix = "spring.mvc")
public class WebMvcProperties {
Затем нам нужно изменить конфигурацию, связанную с Spring Mvc, просто вapplication.properties
указано в файлеspring.mvc.xxxx=xxxx
Вот и все.
На самом деле в конфигурационном файле еще много чего, о чем будет подробно рассказано далее в статье.
Что такое стартовый класс?
Как упоминалось ранее, класс запускаDemoApplication
, исходный код выглядит следующим образом:
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication
что это такое? На самом деле, на первый взгляд, этот класс нормальный, единственное, что бросается в глаза, это@SpringBootApplication
В этой аннотации, конечно же, главная роль принадлежит именно ей. Исходный код этой аннотации выглядит следующим образом:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {}
Я милый, аннотации наложены, полностью@SpringBootConfiguration
,@EnableAutoConfiguration
,@ComponentScan
Эти три аннотации накладываются друг на друга.
ComponentScan
: Эта аннотация не является незнакомой, аннотация в Spring, аннотация сканирования пакетов, функция этой аннотации - сканирование при запуске проекта.Тот же уровень класса запуска и bean-компонентов в подчиненном пакете.
@SpringBootConfiguration
: Эта аннотация является аннотацией Spring Boot, исходный код выглядит следующим образом:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
@AliasFor(
annotation = Configuration.class
)
boolean proxyBeanMethods() default true;
}
Как видно из исходного кода,@SpringBootConfiguration
полностью@Configuration
аннотация,@Configuration
Это аннотация в Spring, указывающая, что класс является классом конфигурации, поэтому мы можем делать некоторые вещи в классе запуска, которые может делать класс конфигурации, например, внедрятьBean
.
@EnableAutoConfiguration
: эта аннотация знает, что происходит, когда вы видите имя, напрямую переводите код,Включить автоматическую настройку, как следует из названия, исходный код выглядит следующим образом:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
Еще одна знакомая заметка@Import
, какая функция?Быстро импортируйте бобы в контейнер IOC, есть три способа, вот один из нихImportSelector
Способ. Это не тема данной статьи, поэтому я не буду вдаваться в подробности.
@EnableAutoConfiguration
Роль этой аннотации также ясна с первого взгляда, не более@Import
Это просто форма , которая быстро внедряется в контейнер IOC при запуске проекта.Bean
Вот и все.
Что ж, сначала здесь будет представлен класс запуска, а статья с исходным кодом будет обсуждаться позже, чтобы лучше понять возможности этого класса.
Как проводить модульное тестирование?
Создание проекта Spring Boot предоставляет нам класс для модульного тестирования следующим образом:
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
}
}
@SpringBootTest
: Эта аннотация указывает, что этот класс является классом для модульного тестирования.
В этом классе bean-компоненты в контейнере IOC могут быть получены автоматически, например:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private HelloWorldController helloWorldController;
Это просто краткое введение.В реальной разработке он не используется.По мере того, как проект становится все больше и больше, время запуска становится все больше и больше.Кто будет настолько глуп, чтобы запустить тестовый метод для проверки кода, который является чистым пустая трата времени.
Суммировать
Как первый пункт Spring Boot, это конец написания.Нет подробного содержания, только простое понимание Spring Boot.
Инструменты разработки, использованные в этой статье,IDEA
,Есть необходимость2020
Версия публичного аккаунта [Code Ape Technology Column] Ответ на ключевые словаIDEA2020
, есть ключевые слова ответа, для которых нужен пакет взлома IDEAIDEA破解包