Путь самообучения серверной части Java

Java задняя часть

Недавно некоторые пользователи сети спрашивали меня, как самостоятельно изучить бэкэнд Java, а некоторые хотят переключиться с других направлений, но они мало знают о том, что нужно изучать бэкэнд Java, с чего начать и какие Java являются основными. бэкэнды Технологии и т.д., заставляют хотеть учиться, но очень запутались, не знаю с чего начать. Я написал этот блог, основываясь на опыте людей, которые пришли сюда, не обязательно все они верны, но все они суммированы мной на основе моего собственного опыта для вашего ознакомления.

Java Back-end

Основы Java

Java — чистый объектно-ориентированный язык программирования, поэтому помимо базового синтаксиса вы должны понимать его особенности oop: инкапсуляцию, наследование, полиморфизм. Кроме того, есть характеристики дженериков и отражения.На него опираются многие фреймворковые технологии.Например, ядро ​​Spring Ioc и АОП используют отражение, а собственный динамический прокси в Java тоже реализован с использованием отражения.Здесь я специально написал статью.Анализ принципа динамического агента Java. Кроме того, некоторые стандартные библиотеки в Java также очень распространены, например, коллекции, ввод-вывод, параллелизм, почти в Веб-разработка распространена повсеместно, и об этом часто спрашивают на собеседованиях, поэтому, прежде чем самостоятельно изучать Java-бэкэнд, можно сначала заложить основы. такие как лямбда-выражения, сбор потоковых операций, новый API дат и т. д. Что касается новых функций, я также написал несколько блогов об этом, пожалуйста, найдите их сами, и я не буду их публиковать.

Что касается рекомендации книги, я не рекомендую новичкам начинать с «идей программирования на Java» в самом начале, потому что я был тем, кто решил самостоятельно изучать Java в тот день, а читать эту книгу на ночь. Я действительно не понимаю, о чем идет речь, потому что у меня нет базовых знаний в области объектно-ориентированного языкового программирования, а эта книга слишком обширна и глубока. это по-прежнему Java Библия мира, каждый раз, когда я читаю ее, я что-то приобретаю. Я рекомендую вам прочитать "Основные технологии Java" в начале.Эта книга относительно проста для понимания и более приемлема для начинающих.

Что касается видео-рекомендации, я слушал базовый учебник по Java, который преподал г-н Би Сяндун от гостя. Лекция г-на Би была настолько живой и интересной, что он неосознанно загнал меня в яму Java и не мог выбраться. Иногда Я бы послушал его.Смеяться вслух во время видео было, наверное, самой забавной частью моего периода самообучения.

база данных

Что касается аспекта sql:Учебник по SQL,Учебник по MySQL

После того, как я изучил базовую грамматику, я последовал за учителем в видео, чтобы выполнить некоторые практические упражнения по работе с таблицами, такие как запрос к одной таблице, запрос к нескольким таблицам и т. д. Я предлагаю изучать sql, чтобы не быть невежественным, а больше практиковаться, а не просто понимать его, потому что очень важно писать лаконичный sql на работе. Здесь я скажу, что я придерживался оператора sql в проекте, чтобы избежать запроса к нескольким таблицам, чтобы избежать запроса к нескольким таблицам, а также отделить несколько операторов от нескольких операторов, потому что это связано с производительностью запросов к нескольким таблицам и проблемами расширения базы данных. .

Что касается стороны JDBC:Учебное пособие по JDBC,JDBC получить анализ исходного кода объекта подключения

Вам нужно понимать использование JDBC API.По сути, это просто набор стандартных интерфейсов.Поскольку все драйверы баз данных реализуют JDBC, мы можем вызывать соответствующие драйверы через стандартный API, не зная, как реализованы драйверы. Преимущества программирования интерфейсов. А для JDBC я прямо смотрел видео, чтобы понять, и следил за видео, чтобы сделать транзакционный гаджет на основе инструмента Apache Dbutils.Я специально резюмировал его ментальной картой:

database

Веб-основы

Основатель Open Source China Sweet Potato однажды написал статью «Новичок в веб-разработке на Java, пожалуйста, держитесь подальше от различных фреймворков и разрабатывайте с помощью Servlet.", я думаю, что то, что он сказал, слишком правильно, в сегодняшней Java-разработке многие разработчики знают только, как использовать фреймворк, но они не понимают некоторые моменты знаний в Интернете. На самом деле, фреймворков много, но они в основном это рутина, так что прежде чем изучать какой-либо фреймворк, заложите хорошую основу для Интернета, а фреймворк действительно как рыба в воде.

Что касается протокола Http, эта статья очень ясна:HTTP-протокол

Что касается рекомендаций по данным веб-фонда, я смотрел «Подробное объяснение Tomcat и технологии веб-разработки на Java», в котором подробно объяснялись технические аспекты всей веб-разработки на Java, но теперь я думаю, что в нем есть некоторые. технология действительно немного устарела, но приятно взглянуть на историю веб-разработки Java. Поэтому, с точки зрения основ веб-разработки, я всегда смотрел "Супер-всеобъемлющий веб-видеоурок по Java", который преподал г-н Цуй в гостях. Он очень подробный и яркий, и есть практические проекты!

Что касается JSP, то нужно только понимать, что это на самом деле сервлет, а что касается использования некоторых его тегов, то я думаю, что его можно игнорировать напрямую, потому что почти ни одна компания в Интернете до сих пор не использует JSP, за исключением некоторых старых проектов. Сейчас эра разделения клиентской и серверной части, одностраничных приложений и только API-интерфейсов на серверной части, поэтому время дорого, поэтому сосредоточьтесь на спецификации сервлетов.

Что касается Tomcat, это веб-контейнер.Написанные нами серверные проекты должны быть развернуты в веб-контейнере для запуска.На самом деле это программа на стороне сервера, которая следует протоколу Http и взаимодействует с клиентом посредством связи через сокет:Структура Tomcat и процесс обработки запроса

Основной веб-фреймворк

Есть так много веб-фреймворков Java. Когда у вас есть некоторый опыт, вы также можете написать веб-фреймворк. Многие люди в Интернете говорят, что Spring, Struts2 и Hibernate — это три вагона Java. Я просто хочу сказать, что это давным-давно.рекомендуются Struts2,Hibernate.Поверьте,начать нужно только с Spring,SpringMVC,Mybatis,особенно с фреймворком Spring.На самом деле фреймворки семейства Spring очень хороши.

Но напоминание: не увлекайтесь различными фреймворками и не можете выпутаться из них, а довольствуйтесь многократным использованием, чтобы вы знали это, но не знали, почему.

Основная идея Spring — это IOC и AOP:

Разговор о понимании Spring IOC

Spring Аспектно-ориентированное программирование

Идея SpringMVC заключается в использовании одного сервлета для переадресации запросов и управления всеми запросами, этот сервлет называется DispatcherServlet:

Процесс инициализации SpringMVC

SpringMVC обрабатывает процесс запроса

Mybatis может реализовать динамическую сборку sql, избегая почти всего кода JDBC и вручную устанавливая параметры и получая наборы результатов:

Начало работы с mybatis

Подробная серия Mybatis

Расширенный веб-фреймворк

После использования фреймворка SSM вы почувствуете, что фреймворк — это не что иное, как одно и то же. Если у вас есть общее представление о Spring, вы также захотите написать «копирующую версию» Spring. Облегченный веб-фреймворк в основном имеет следующие особенности:

  1. Пользовательский файл конфигурации можно прочитать и использовать для инициализации фреймворка;
  2. Иметь контейнер Bean для управления жизненным циклом объекта класса проекта;
  3. С внедрением зависимостей уменьшите связь между классами;
  4. С помощью функции АОП проект можно программировать горизонтально, а бизнес-логику можно добавлять без изменения исходного кода;
  5. Имеет шаблон фреймворка MVC.

На самом деле, помимо SSM, существуют сотни веб-фреймворков, среди которых наиболее ярким является ведро семейства Spring, здесь я настоятельно рекомендую два фреймворка семейства Spring: SpringBoot и SpringCloud.

SpringBoot компенсирует недостатки конфигурации Spring, и больше не нужно усердно работать над сложным xml.Его можно назвать подрывом внутренней разработки Java.Рекомендуемая книга "Подрывная разработка Java EE: практика SpringBoot"

SpringBoot создает веб-проекты

Анализ исходного кода автоматической конфигурации SpringBoot

Настройте стартер SpringBoot

spring-boot-starter-tutorial

SpringCloud — это микросервисная архитектура, которая может разделить проект на микросервисы в соответствии с бизнесом, каждый микросервис можно развернуть независимо, а сервисы координировать друг с другом. Когда проект становится все больше и больше, его становится все труднее поддерживать.В это время разделение проекта на несколько микросервисов, отдельное обслуживание и отдельное развертывание также может уменьшить связь между различными подразделениями проекта. Рекомендуемая книга «Практическая архитектура микросервисов Spring Cloud и Docker». Эта книга идеально сочетает в себе Docker и микросервисы, что идеально!

Официальный китайский сайт Spring Cloud

Самый простой учебник по Spring Cloud

Я веду блог о Spring Cloud:

Регистрация службы и обнаружение микросервисной архитектуры SpringCloud

Архитектура потребительских сервисов SpringCloud micro Services

Автоматический выключатель микросервисной архитектуры SpringCloud

Сервисный шлюз микросервисной архитектуры SpringCloud

Другие технологии

Redis: высокопроизводительная база данных "ключ-значение". При большом количестве одновременных запросов кэширование данных в Redis повысит производительность ответа сервера и значительно снизит нагрузку на базу данных.

официальный сайт Redis на китайском языке

учебник по редису

Git: самая совершенная в мире распределенная система управления версиями. Всем новичкам рекомендуется начать использовать Git из командной строки!Подпишитесь на общедоступную учетную запись stormzhang "googdev" и ответьте на "github", чтобы получить бесплатную электронную книгу с инструкциями на GitHub. Я думаю, она очень хорошо написана.

Официальный сайт Git

Самый полный учебник по Git

Некоторые распространенные команды Git

Maven: Инструмент для сборки проектов, который прекрасно организует зависимости между проектами через xml и может компилировать проекты в файлы байт-кода через плагины компиляции. Также есть похожий Gradle — тоже хороший выбор.

Подробное объяснение файла maven pom.xml

Linux: необходимо использовать как минимум общие команды, и проект можно развернуть в среде Linux.

Энциклопедия команд Linux

Самый полный учебник по удаленному терминалу SSH-подключения

Docker: это просто артефакт развертывания проекта. Слишком поздно объяснять. Ознакомьтесь с моей серией блогов о Docker и начните путешествие по Docker! Рекомендуемая книга «Введение в технологию Docker и практический бой», первая книга о Docker в Китае!

Докер бой (1)

Докер на практике (2)

Докер в действии (3)

docker-deploy-tutorial

Инструменты разработки

Если вы хотите делать хорошую работу, вы должны сначала отточить свои инструменты.Вот некоторые инструменты разработки, которые я рекомендую:

Intellij IDEA: Лучшая IDE для Java разработки.Это признано.Сначала я использовал Eclipse,а потом уже использовал Intellij IDEA,только для того,чтобы обнаружить,что Eclipse это кусок дерьма,поэтому советую не использовать Eclipse а сразу Intellij IDEA !

Руководство по IntelliJ IDEA

Iterm2: Лучший терминал для macOS!

Руководство пользователя Итерм2

Хром: Жизнь слишком коротка, пожалуйста, используй Хром, уже поздно объяснять, садись в машину!

Postman: очень полезный инструмент для отладки интерфейса.

официальный сайт почтальона