(1) Начальная загрузка SpringBoot
Заинтересованные друзья могут зайти и узнать о других вышедших статьях.Ваши лайки - самая большая поддержка для меня, всем спасибо!
- Каталог статей
(1) Взлет SpringBoot - HelloWorld
(2) Путь взлета SpringBoot — анализ принципа входа
(3) Путь взлета SpringBoot - сводка конфигурации YAML (необходимо знать перед началом работы)
(4) Дорога взлета SpringBoot — статическая обработка ресурсов
(5) Взлетная дорога SpringBoot — шаблонизатор Thymeleaf
(6) Способ взлета для SpringBoot - интеграция JdbcTemplate-Druid-MyBatis
(7) Путь взлета SpringBoot — интеграция SpringSecurity (Mybatis, JDBC, память)
(8) Подробное руководство по Широ, интегрированное с дорогой SpringBoot (MyBatis, Thymeleaf)
(9) Путь взлета SpringBoot — Swagger 2 и 3
инструкция:
- Исходный код, задействованный в серии статей о взлете SpringBoot, синхронно выложен на github, если он вам нужен, смело спускайтесь вниз.
- Если вы невежественны в таланте и знаниях, вы укажете на поверхностные знания.Каждый имеет право читать это как инструментальную статью.Не нравится-не распыляйтесь~
(1) Путь обучения
Разработайте веб-проект, начиная с JavaWeb начального уровня, который представляет собой набор Servlet + Tomcat, После изучения этой части большинство людей свяжутся с некоторыми фреймворками, такими как SSM, SSH (реже), а затем они свяжутся со SpringBoot Подождите , с появлением нового фреймворка, или крупным обновлением унифицированного фреймворка, нам тоже нужно продолжать учиться.Вообще как я обычно много чего делаю, прямо скажем, это простые или сложные дополнения, удаления, изменения и исследования, смешанные по потребностям.В нем много бизнес-логики, например, простой вход в систему, каждый должен был сделать N версий в исследовании.
Конечно, есть и некоторые друзья, которые пропускают Spring и сначала смотрят на SpringBoot, а потом возвращаются, чтобы учиться, но я сам к этому не привык, SpringBoot сделал слишком много вещей для вас за кулисами, от бережливости до роскоши. , из Трудно быть экстравагантным и бережливым.Если бы я был собой, у меня не было бы желания вернуться к учебе (Humble Code Farmer)
инструкция:
-
Если вы не хотите какое-то время смотреть на эти бюрократические препоны, конкретная реализация создания реального проекта SpringBoot находится под заголовком "IDEA Quickly Create SpringBoot Projects"
-
Изначально я хотел записать некоторые общие вводные знания в статью, а затем отправить ее, но позже я почувствовал, что мобильный терминал слишком длинный, а опыт чтения слишком плохой, поэтому я планировал разделить ее на несколько статей.
-
Конечно, для больших парней это вообще пустяк.Вполне правильно смотреть на это как на инструментальную статью.Если вам не нравится - не сердитесь~
(2) Путь к разработке фреймворка
С этой точки зрения разработку корпоративных приложений Java можно условно разделить на следующие три процесса: Javaweb --> Spring --> SpringBoot.
A: Зачем использовать рамку?
Почему с JavaWeb мы должны использовать такие фреймворки, как Spring? В предыдущей статье я также сказал, что эти фреймворки могут значительно снизить стоимость разработки, но могут эффективно удовлетворить некоторые требования.
Не надо говорить о слишком профессиональных терминах, давайте поговорим о просторечии, о нем должен знать каждый.«Рама — это полуфабрикат», в этом предложении нет ничего плохого, фреймворк инкапсулирует много кода, и тогда вам нужно только напрямую вызвать API, который он вам предоставляет, чтобы напрямую использовать его функции
Конечно, первоначальная цель фреймворка, конечно же, упростить разработку и помочь разработчикам быстро выполнить требования проекта.Если быть точным, фреймворк сочетает в себе множествоШаблоны проектирования, что позволяет вам"динамический"Разработка кода реализует универсальность кода.Как правило, простой код, написанный вами, включает в себя слишком много проблем с «жестким кодированием», и слишком сложно писать эти шаблоны проектирования самостоятельно.
Б: Зачем использовать SpringBoot
Spring помогает людям создавать приложения корпоративного уровня относительно эффективно и быстро, но конфигурация является относительно громоздкой.После версии 2.5 было введено сканирование компонентов на основе аннотаций, что уменьшило объем XML.После версии 3.0 его можно использовать. @Configuration для определения классов конфигурации, XML также можно полностью удалить, или это можно назвать чистой разработкой аннотаций, но сейчас многие люди все еще привыкли к XML + разработка аннотаций
-
Хотя Spring в определенной степени исключил конфигурацию XML, эти конфигурации, честно говоря, имеют некоторые проблемы, и неизбежно тратить некоторое время на настройку.
-
Кроме того, яма зависимостей - это действительно сопли и слезы.Безумные конфликты разных версий зависимостей несовместимы, что всегда сводит меня с ума.
SpringBoot - это фреймворк, разработанный в этом контексте. Он решает наши существующие проблемы и упрощает нашу разработку. Давайте познакомимся с ним.
(2) SpringBoot действительно ароматный
A: Как решить прошлые проблемы
SpringBoot, основываясь на некоторых прошлых вопросах, таких как Spring, предложилИдея конвенции над конфигурацией, многие настройки сделаны по умолчанию, и это помогает нам делать много вещей за кулисами, так что разработчики могут быстро создавать проекты с небольшим объемом конфигурации, или интегрировать некоторые сторонние вещи, разработчикам не нужно чрезмерно тратиться на настройку Достаточно сконцентрироваться на написании бизнес-логики, что значительно повышает эффективность разработки
Б: Основные понятия
SpringBoot не нужно понимать как новый фреймворк.Он не создан для замены Spring.В основном он предназначен для упрощения разработки Spring.По умолчанию он помогает нам настроить многие фреймворки,так что мы больше не можем беспокоиться о конфигурации этих фреймворков, чтобы мы могли приступить к работе.
Официальное описание SpringBoot:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration
С: Особенности
- Обеспечивает более быструю адаптацию для разработки на основе Spring.
- Приступайте к работе прямо сейчас, без генерации избыточного кода и настройки XML
- Встроенные контейнеры значительно упрощают веб-проекты
- Разработан для упрощения Spring, а не для замены Spring
Официальное описание SpringBoot:
Features
- Create stand-alone Spring applications
- Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
- Provide opinionated 'starter' dependencies to simplify your build configuration
- Automatically configure Spring and 3rd party libraries whenever possible
- Provide production-ready features such as metrics, health checks, and externalized configuration
- Absolutely no code generation and no requirement for XML configuration
D: основная функция
Зависит от запуска
- Зависимость при запуске — это, по сути, объектная модель проекта Maven (POM), которая определяет транзитивные зависимости от других библиотек, которые вместе поддерживают определенную функцию.
- Проще говоря, начальная зависимость состоит в том, чтобы упаковать координаты с определенными функциями вместе и предоставить некоторые функции по умолчанию.Вам нужно только сообщить Spring Boot, какие функции необходимы, и он может импортировать необходимые библиотеки.
Автоматическая конфигурация
- Для многих распространенных прикладных функций приложений Spring Spring Boot может автоматически предоставлять соответствующую конфигурацию.
- В то же время автоматическая настройка Spring Boot — это процесс во время выполнения (точнее, при запуске приложения), и перед принятием решения о том, какую конфигурацию Spring следует использовать, а какую нет, учитывается множество факторов.
После простого изучения, вернитесь и посмотрите на эти слова, вы узнаете, насколько силен SpringBoot, но мы не можем быть гигантами, поэтому давайте встанем на плечи гигантов и научимся! снять! ! !
(2) Привет, SpringBoot
(1) Первый опыт (созданный Maven)
Объясните заранее: этот метод в основном не будет использоваться в будущем, просто чтобы проложить путь ко второму и третьему пунктам, чтобы лучше понять, что SpringBoot простой и автоматический
Создайте пустой проект.Для следующих демонстрационных методов просто создайте отдельно мудуле.То же самое,если вы создадите его прямо в Проекте.
A: Создайте модуль Maven
Создайте модуль, выберите проект Maven, не проверяйте веб-скелет, который мы использовали ранее, просто создайте его напрямую.
Заполните эти основные значения
GroupID – это уникальный идентификатор проектной организации. Вообще говоря, его можно настроить так, чтобы он соответствовал структуре пакета, то есть структуре каталогов java в основном каталоге. Его можно установить в порядке, обратном доменному имени. .Конечно, это не обязательно.Я, например, поставил cn.ideal
Artifactid - это уникальный идентификатор проекта, как правило, установлен на имя проекта
Именно через эти два значения формируется «координата», которая может обеспечить уникальность предмета.
Об этом шаге и говорить нечего, он всем знаком
B: Добавить стартовые зависимости
По требованиям SpringBoot нам нужно добавить его стартовые зависимости для простых тестов.
- Проект должен наследовать начальную зависимость SpringBoot spring-boot-starter-parent
- Чтобы интегрировать SpringMVC для разработки контроллера, проект должен импортировать зависимость веб-запуска spring-boot-starter-web.
<?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"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
</parent>
<groupId>cn.ideal</groupId>
<artifactId>springboot_01_start</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
C: Напишите класс запуска SpringBoot
Наша структура пакета теперь cn.ideal. Мы создадим класс в этом каталоге с именем MySpringBootApplication (имя не является обязательным).
Напишите следующий контент, не забудьте прокомментировать, просто нужно знать на данный момент, этот класс запуска очень важен, конкретное объяснение будет написано в следующих статьях.
package cn.ideal;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class);
}
}
D: создать контроллер
Потом все стало очень знакомо Я создал пакет контроллера под cn.ideal, а затем создал
package cn.ideal.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class QuickStartController {
@RequestMapping("/test")
@ResponseBody
public String test(){
return "springboot 访问测试,起飞,飞飞飞飞 ~ ~ ~";
}
}
E: Тест SpringBoot
Откройте только что созданный класс запуска MySpringBootApplication, а затем запустите его основную функцию, консоль распечатает такой шаблон
В то же время будет некоторый вывод информации, и я наблюдал предложение Tomcat, запущенное на порту (ах): 8080 (http) с контекстным путем '', что означает, что мы можем получить доступ через порт 8080, и мы не устанавливаем имя приложения, то есть напрямую использовать доступ к порту
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.7.RELEASE)
2020-05-10 22:11:34.973 INFO 30580 --- [ main] cn.ideal.MySpringBootApplication : Starting MySpringBootApplication on LAPTOP-5T03DV1G with PID 30580 (F:\develop\IdeaProjects\framework-code\springboot_01_demo\springboot_01_start\target\classes started by abc in F:\develop\IdeaProjects\framework-code\springboot_01_demo)
2020-05-10 22:11:34.976 INFO 30580 --- [ main] cn.ideal.MySpringBootApplication : No active profile set, falling back to default profiles: default
2020-05-10 22:11:35.686 INFO 30580 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-05-10 22:11:35.693 INFO 30580 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2020-05-10 22:11:35.693 INFO 30580 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.34]
2020-05-10 22:11:35.765 INFO 30580 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2020-05-10 22:11:35.766 INFO 30580 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 747 ms
2020-05-10 22:11:35.884 INFO 30580 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-05-10 22:11:35.990 INFO 30580 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-05-10 22:11:35.993 INFO 30580 --- [ main] cn.ideal.MySpringBootApplication : Started MySpringBootApplication in 1.318 seconds (JVM running for 2.665)
Непосредственное посещение домашней страницы — это белая страница, потому что мы не устанавливали индексную страницу, поэтому она, естественно, будет такой.
Мы запрашиваем контроллер только сейчас, и наша строка успешно распечатана
(2) Проект создания веб-страницы официального веб-сайта
Этот метод также прокладывает путь к третьему пункту, используя веб-страницу Spring Initializr для создания проекта,
1. Откройте страницу Spring Initializr, указанную на официальном сайте.start.spring.io/
2. Заполните информацию о проекте, поговорим о третьем пункте
3. Нажмите кнопку «Создать проект», чтобы создать проект, а затем загрузите проект.
4. После распаковки импортируйте его как проект Maven с помощью IDEA.
(3) IDEA быстро создает проект SpringBoot (※)
Это наш наиболее часто используемый метод создания
A: Создайте модуль Spring Initializr
Если вы посмотрите на этот URL, то сразу все поймете, по умолчанию он тоже идет на официальный сайт для его генерации, но его не нужно импортировать, и его можно сгенерировать прямо в IDEA.
B: Заполните информацию о проекте
В этой части сначала заполните группу и артефакт, затем имя пакета по умолчанию будет содержать имя нашего проекта, мы удаляем его и оставляем базовую структуру пакета.
Что касается версии, мы используем версию по умолчанию, конечно, вы можете изменить ее по своему выбору.
C: Выберите группу инициализации
Этот шаг позволяет нам выбрать, какие компоненты загружать для нас при инициализации. Просто выберите Web для начинающих. Я также проверил здесь DevTools. Это то, что мы будем использовать для горячего развертывания позже. OK
Продолжайте определять местоположение и имя
На этом наш проект создан
D: что генерирует проект
Базовый проект создается с помощью описанных выше шагов. Следующие файлы создаются автоматически
-
Основной класс запуска программы, которому автоматически присваивается имя в соответствии с именем проекта, например Springboot02QuickstartApplication.
-
Тестовый класс Springboot02QuickstartApplicationTests.
-
Файл конфигурации application.properties
-
pom.xml, который автоматически импортирует для нас некоторые зависимости на основе компонентов инициализации, которые мы выбрали ранее.
Как видите, нам не нужно создавать наш класс запуска и pom самостоятельно, что экономит много усилий.
Автоматически сгенерированный pom.xml приведен ниже, я добавил небольшой комментарий
<?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"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.ideal</groupId>
<artifactId>springboot_02_quickstart</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_02_quickstart</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<!-- web相关 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<!-- 热部署相关 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<!-- springboot单元测试相关-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 剔除依赖 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- 打包插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
(3) Горячее развертывание проекта Spring Boot
Продолжайте рекомендовать еще две часто используемые вещи, первая — горячее развертывание.
Мы часто модифицируем классы, страницы и т. д. во время разработки.После каждой модификации нам нужно перезапускать, что очень хлопотно и тратит время.Мы можем добавить следующую конфигурацию в pom.xml, чтобы код работал без перезапуска, мы вызываем это для горячего развертывания
(1) Добавить зависимости
Ниже приведены зависимости горячего развертывания, если мы выбираем при инициализации компонентаdevtoolsВам не нужно добавлять зависимости самостоятельно
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Конфигурации недостаточно, потому что IDEA не будет автоматически компилироваться по умолчанию, поэтому нам нужно изменить некоторые настройки.
(2) Изменить конфигурацию
В настройках найдите связанную компиляцию, а затем автоматически проверьте проект сборки.
Затем сочетание клавиш Shift+Ctrl+Alt+/, выбираем Registry
Найдите его ниже, complier.automake.allow.when.app.running и проверьте его, затем ЗАКРЫТЬ, чтобы выйти
Перезапустите сервер, вы можете увидеть эффект, когда мы изменим класс и т. Д., Код также может вступить в силу напрямую.
(4) Проект упакован в пакет Jar.
У нас есть такая упаковка jar выше, как ее использовать?
<plugin>
<!-- 打包插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
С правой стороны мы можем выбрать «чистый», а затем «упаковать в пакет».Когда консоль отобразит BUILD SUCCESS, под целью будет дополнительный пакет jar, например, мой springboot_02_quickstart-0.0.1-SNAPSHOT.jar.
После успеха мы можем указать на цель, чтобы увидеть эффект, операция прошла успешно, и браузер также может получить доступ
конец
Если в статье есть какие-либо недостатки, пожалуйста, оставьте сообщение для обмена, спасибо за вашу поддержку!
Если это может вам помочь, то следуйте за мной! Если вы предпочитаете читать статьи WeChat, вы можете подписаться на мой публичный аккаунт.
Мы не знаем друг друга здесь, но мы все усердно работаем над своей мечтой ❤
Публичный аккаунт, который настаивает на публикации оригинальных технических статей о разработке: в идеале — более двух дней.