1. Введение
Это первая статья из темы анализа исходного кода Spring Boot 2.1, в которой в основном рассказывается о том, как создать нашу среду чтения и отладки исходного кода. Если у вас есть опыт, вы можете пропустить эту статью.
2 Требования к окружающей среде при установке
- IntelliJ IDEA
- JDK1.8
- Maven3.5 и выше
3 Загрузите проект исходного кода SpringBoot с github.
Обеспечьте сначалаSpringBoot2.1.0адрес гитхаба:GitHub.com/spring-pro — это…
Поскольку мы хотим прочитать исходный код и проанализировать проект исходного кода, хотим ли мы написать в нем какие-то комментарии, которые помогут нам прочитать и понять исходный код, поэтому нам нужно разветвить проект исходного кода SpringBoot в наш собственный репозиторий github, а затем использоватьgit clone urlКоманда для извлечения исходного кода SpringBoot, который был разветвлен, в ваш собственный репозиторий github. Однако, поскольку описанные выше методы часто очень медленные и обычно истекают по времени, автор напрямую загружает проект SpringBoot, а затем импортирует его в IDEA.
4 Импортируйте исходный проект SpringBoot в IDEA.
Импортируйте проект spring-boot2.1.0.RELEASE, который вы только что загрузили, в IDEA с помощью метода maven, а затем перейдите к следующему, чтобы завершить импорт.Обратите внимание, что версия JDK — 1.8, а версия maven — 3.5+.
В настоящее время загрузка зависимостей maven является длительным процессом ожидания, поэтому рекомендуется, чтобы друзья, у которых не настроено хранилище maven (A-Li-Cloud), настроили его, чтобы скорость загрузки была намного выше. Ссылаться наНастройте maven для использования хранилища (A-Li-Cloud)Просто настройте его.
5 Скомпилируйте и соберите проект исходного кода SpringBoot
После импорта проекта на этом этапе мы компилируем и собираем проект исходного кода SpringBoot и делаем две конфигурации перед сборкой:
- Мы хотим отключить проверку кода maven, просто добавим некоторую конфигурацию в корневой файл pom.xml, как показано ниже:
- Он может отображаться в теге проекта файла pom.xml некоторых друзей.
java.lang.OutOfMemoryError
Ошибка, это связано с тем, что максимальная память кучи JVM, установленная импортером Maven в IDEA, слишком мала, как показано на рисунке ниже, вы можете обратиться к ней в это время.Ошибка импорта пакета зависимостей Maven (IntelliJ IDEA)Это можно решить.
После двух вышеуказанных конфигураций мы можем напрямую выполнить следующую команду maven для компиляции и сборки проекта с исходным кодом.
mvn clean install -DskipTests -Pfast
На этот раз это было долгое ожидание, я подождал около 5 минут, чтобы показать, что построение прошло успешно, как показано ниже:
6 Запустите образец, поставляемый с SpringBoot
Поскольку модуль spring-boot-samples в исходном коде SpringBoot поставляется со многими примерами DEMO, мы можем использовать один из примеров для тестирования и запуска только что созданного проекта исходного кода Springboot. Но в это время обнаружено, что модуль spring-boot-samples серый, как показано ниже:Это связано с тем, что модуль spring-boot-samples не был добавлен в корневой pom.xml.В настоящее время его можно добавить в корневой pom.xml, и добавляется следующая конфигурация, как показано на следующем рисунке:На этом этапе мы выбираем образец проекта spring-boot-sample-tomcat в модуле spring-boot-samples, чтобы протестировать его, и запускаем его в это время.SampleTomcatApplication
изmain
функция, успешный интерфейс запуска выглядит следующим образом:
Затем мы отправляем HTTP-запрос в браузере.В это время мы видим, что сервер успешно возвращает ответ, указывая на то, что среда исходного кода SpringBoot была успешно построена в это время, и затем мы можем ее отладить, как показано на следующий рисунок:
7 практических занятий
Среда чтения исходного кода SpringBoot была успешно построена ранее. Друзья, не забудьте создать свою собственную среду отладки исходного кода SpringBoot самостоятельно. Очень важно прочитать исходный код и начать отладку, хе-хе.
уведомление о следующем разделе: Как мы анализируем модули и структуры, задействованные в исходном коде SpringBoot? --Исходный код SpringBoot (2)