Создавайте легко поддерживаемые, масштабируемые, модульные приложения Spring Boot.
Создавайте легко поддерживаемые, масштабируемые, модульные приложения Spring Boot.

Предисловие

Привет всем, я из сообщества разработчиков Tencent Cloud. Front_Yue,В этой статье вы узнаете, как Создать легко поддерживаемые, масштабируемые, модульные приложения Spring Boot.。

Как мы знаем, Spring Boot — это очень популярная среда веб-разработки на Java, которая помогает разработчикам быстро создавать эффективные и масштабируемые веб-приложения. Однако по мере увеличения размера проекта поддерживать отдельный проект Spring Boot может становится все труднее. В это время модульный проект Spring Boot становится незаменимым выбором.

Итак, я начну рассказывать, как создать модульный проект Spring Boot, чтобы упростить поддержку и расширение нашего проекта.

Текстовый контент

1. Зачем вам нужен модульный проект Spring Boot

1. Улучшите удобство сопровождения и возможность повторного использования кода:Разделите приложение на независимые、многоразовые компоненты,Может улучшить удобство сопровождения и возможность повторного использования кода. Эти компоненты можно повторно использовать в приложении.,Это уменьшает дублирование кода,Улучшена поддержка кода.

2. Лучше организуйте свой код:модульизация может помочь нам лучше организовать наш код.,Сделайте код более простым в управлении и понимании。каждыймодуль У каждого свои обязанности и функции,Это делает код более понятным и понятным.,Легко понять и поддерживать.

3. Повышение эффективности разработки:модульизация может уменьшить дублирование кода,Повышение эффективности разработки。каждыймодуль У каждого свои обязанности и функции,Это позволяет разработчикам больше сосредоточиться на своем модуле.,Таким образом, быстрее выполняются задачи разработки.

4. Лучшее управление и контроль зависимостей:модульпозволяет лучше управлять и контролировать зависимости。каждыймодуль У каждого свои зависимости,Это делает зависимости проще и понятнее.,Простота управления и обслуживания.

2. Как разделить модули Spring Boot

Способ разделения модулей Spring Boot можно определить исходя из конкретных потребностей бизнеса и масштаба проекта. Вообще говоря, мы можем разделить его по функциям, бизнесу, технологиям и т. д. Ниже приведены некоторые мои мнения по поводу разделения модулей.

1.Бизнес-подразделение

Разделите модули по бизнесу и разделите бизнес-функции в один модуль. Например, разделите управление заказами проектов торгового центра, управление платежами, управление логистикой и другие функции в один и тот же модуль. Это может сделать код более ориентированным на бизнес, сделать его более простым для понимания и сопровождения.

2. Технический отдел

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

3.Публичные модули

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

3. Как создать модульный проект Spring Boot

1. Создайте пустой проект Spring Boot.

Сначала нам нужно создать пустой проект Spring Boot. Вы можете использовать Spring Initializr для создания пустого проекта Spring Boot или использовать интегрированную среду разработки, такую ​​как IDEA или Eclipse, для создания пустого проекта Spring Boot.

При выборе соответствующих зависимостей вы можете сначала выбрать Spring Web. Что касается других, то это потому, что я помещу зависимости в соответствующие модули позже, а именно так, как упоминалось ранее, мы разделим модули.

Не забудьте установить конфигурацию Maven после создания проекта.

2. Создайте несколько подмодулей Spring Boot.

точно так же, как указано выше,в корнемодуль Создать несколькоspringbootребенокмодуль,Например, естьdemo-admin,demo-common,demo-framework,demo-system,После завершения создания,Мы можем удалить некоторые файлы, которые не используются в проекте.,Содержите наши проекты в чистоте и порядке.

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

Язык кода:js
копировать
demo (корневой): этот модуль является корневым модулем проекта.
demo-admin: Этот модуль является фоновой службой проекта.
demo-common: этот модуль является общедоступным модулем проекта, включая некоторые общедоступные классы инструментов, определения констант, обработку исключений и другие функции.
demo-framework: этот модуль является основным модулем платформы проекта и содержит некоторые общие технические компоненты, такие как Spring. Загрузите, MyBatis, Redis.
демо-система: Этот модуль представляет собой системный модуль, включающий управление пользователями, настройки системы, управление ролями, управление меню, управление журналами, словарь данных и другие функции.
demo-xxxxxx:   Другое проектмодуль,Например, бизнес нашего проектамодуль
3. Настройте корневой модуль и подмодули.

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

Язык кода:java
копировать
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.2.1</version>
		<relativePath/>
	</parent>
    // Информация о корневом компоненте
	<groupId>com.demo</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>demo</description>
	<packaging>pom</packaging>
	<modules>
        // demo-admin модуль
		<module>demo-admin</module>
        // demo-common модуль
		<module>demo-common</module>
        // demo-framework модуль
		<module>demo-framework</module>
        // demo-system модуль
		<module>demo-system</module>
	</modules>

При этом нам также необходимо настроить подмодули. В качестве примера я беру demo-admin, и другие модули имеют такую ​​же конфигурацию. Обратите внимание, что я помещаю веб-конфигурацию Spring в модуль demo-framework, который находится подробнее. линия с модульной разработкой.

Язык кода:java
копировать
    <modelVersion>4.0.0</modelVersion>
    // Информация о родительском модуле
    <parent>
        <artifactId>demo</artifactId>
        <groupId>com.demo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    // Текущая информация о модуле
    <artifactId>demo-admin</artifactId>

После завершения настройки необходимо отредактировать работающую конфигурацию, как показано на рисунке ниже:

Нажмите «Выполнить». Если вы используете его впервые, может появиться следующая ошибка:

Как упоминалось выше, я поместил Springboot-Web в модуль demo-framework, поэтому модуль необходимо вводить в demo-admin во время выполнения.

Язык кода:java
копировать
<dependency>
    <groupId>com.demo</groupId>
    <artifactId>demo-framework</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

После вышеописанных операций мой проект наконец-то заработал.

4. Настройте зависимости модулей

После разделения проекта Spring Boot на модули каждый модуль имеет свои собственные зависимости, чтобы сделать зависимости более простыми и понятными, ими легче управлять и поддерживать. Мы можем использовать инструменты сборки, такие как Maven, для настройки зависимостей модуля, а затем добавить соответствующие зависимости в POM-файл. Конечно, если вы используете для разработки инструменты разработки IDEA, вы также можете просмотреть зависимости.

Их зависимости показаны на рисунке ниже:

На этом этапе мы завершили создание модульного проекта с использованием фреймворка Springboot.

4. Протестируйте готовый проект SpringBoot.

Мы создаем новый слой контроллера в demo-admin и пишем простой тестовый код, например:

Язык кода:java
копировать
package com.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

В этом плане мы правильно построили многомодульный проект Springboot.

Подвести итог

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

Наконец, я хотел бы поблагодарить моих друзей из сообщества разработчиков Tencent Cloud за их постоянное общение. Если вам нравится контент моего блога и вы признаете мое мнение и обмен опытом, ставьте лайки, собирайте и комментируйте. Это будет моей самой большой поддержкой и поддержкой. . В то же время я также приветствую ценные комментарии и предложения каждого, чтобы я мог лучше улучшить и усовершенствовать свой блог.

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose