Хотя maven предоставил скелеты проекта, такие как maven-archetype-webapp и maven-archetype-quickstart, чтобы помочь нам быстро построить архитектуру проекта, архитектура проекта по умолчанию, инициализированная архетипом, не может удовлетворить потребности разработки.
Диаграмма структуры проекта, созданная с помощью пользовательского типа арки
Чтобы стимулировать интерес к чтению, сначала поместите диаграмму структуры проекта, которая использует пользовательский архетип для создания проекта.
В основном классыarchetypeПоколение, чтобы позволить вам учиться действительно исчерпан
что такое архетип
Его можно просто понимать как класс инструмента шаблона, черезarchetypeМы можем быстро сгенерировать базовую структуру проекта. Например, мы используемideaСоздаватьmaven webпроект, часто выбираютmaven-archetype-webappшаблон для инициализации проекта, используйтеmaven-archetype-webappСозданный проект включает в себяwebappкаталог, который содержитwebфайл конфигурации
Состав архетипов
Чтобы написать обычайarchetype, В первую очередь нужно знать архетип композиции. Архетип состоит из четырех частей:
prototype filesФайл прототипа родыsrc/main/resources/archetype-resourceПод содержанием.prototype filesПод файлом прототипа можно понимать подмодуль в мультимодуле или исходный файл в одномодульном проекте [то есть файл src]. Эти файлы прототипов используют соответствующиеarchetypeгенерируется при сборке проекта
archetype-metadata.xml родыsrc/main/resources/META-INF/maven/Под содержанием. Файлы прототипов и их использование в основном перечислены в этом файле конфигурации.archetypeПараметры, необходимые для создания шаблона проекта
prototype pom родыsrc/main/resources/archetype-resourcesПод содержанием. этоpomarchetypeСоздайте шаблон проекта, если проект представляет собой один модуль, он зависит от управления всем проектом; если это многомодульный проект,pomВсегдаpomфайл, который определяет подмодули проекта и управляет зависимостями подмодулей и т. д., подмодулиpomОпределенный в подмодуле файл pom подмодуля управляет только зависимостями подмодуля.
archetype pom на заказarchetypeв корневом каталоге проекта. Этоarchetypeинженерный проектpomфайла, в нем вообще ничего нет, и он не появится вarchetypeВ созданном шаблонном проекте
Структурное описание Супермена [Custom Arche PETYPE]
supermanСхема структуры проектасодержитarchetypeЧетыре компонента, дваpomфайл, аarchtype-metadataФайл и пять файлов прототипа [__rootArtifactId__-*],в__rootArtifactId__Он будет заменен переданным значением при создании шаблона проекта.
файл конфигурации метаданных archtype
1. Определите использованиеarchetypeПараметры, которые необходимо передавать для генерации проекта шаблона
moduleВведение атрибута:id: проект подмодуляartifactIddir: Исходный файл проекта подмодуля находится вarchetype-resourcesсоответствующийdirectoryname: Имя подмодуля.
2. Откройте проект супермена и установите его на локальный склад. Переключитесь на ветку 20190815-V2UPDate перед запуском команды, главная ветвь была нарушена мной [что позор! ! ! 】 Выполните следующую команду
mvn clean install
3. Инициализируйте проект с помощью пользовательского архетипа
Параметр Описание -DgroupIdИдентификатор группы, такой же, как идентификатор группы имени пакета проекта по умолчанию. DartifactId: уникальный идентификатор проекта, т. е. название проекта. -DarchetypeGroupId: групповой идентификатор супермена, значение изменять не нужно. -DarchetypeArtifactId: ArtifactId супермена, значение менять не нужно
4. изменить файлы конфигурации в папке ресурсов, а файл ресурсов пометить Resources Root
Эта папкаapplication.properties,logback.properties,logback-spring.xmlтри файла конфигурации
application.propertiesМодификация конфигурационных файловapplication.propertiesв основномSpring,MyBatisPlusИ информационная база данных конфигурации
уточнитьMybatisPlusПакет имен классов сущностей, т.е.modelмодульныйpoИмя пакета слоя, по умолчаниюMybatiPlusизmapperФайл сохраненresourceвнизmapperВ папке вы можете изменить его самостоятельно
logback.propertiesМодификация конфигурационных файловlogback.propertiesОпределенныйerrorжурнал уровня иinfoАдрес хранения лога уровня
LOG_ERROR_HOME=
LOG_INFO_HOME=
logback-spring.xmlМодификация конфигурационных файловlogback-spring.xmlВ основном определение правил вывода журнала, если этоwindowsСистему не нужно модифицировать, еслиlinux osилиmac os, вам нужно изменить адрес хранения журнала
Использование генератора кода для генерации 5controller,service,dao,poкод слоя
Класс генератора кода находится по адресуserviceпод модульgeneratorПод пакетом нужно только инициализировать несколько значений полей и запустить для генерации соответствующего кода. Перед запуском сначала создайтеmp-generator-outputпапка, название папки иOUTPUT_DIRЗначение поля соответствует
PACKAGE_NAME Имя пакета сгенерированного кода такое же, как и имя пакета проекта, при копировании прошлого кода возникнут небольшие проблемы.
-OUTPUT_DIRСгенерированный код сохраняет адрес файла, который по умолчанию сохраняется в проекте.mp-generator-outputВ папке вы можете изменить ее на собственный адрес сохранения.
AUTHOR Имя автора в заметке
DRIVER_NAME управляемый базой данных
HOST номер хоста базы данных
PORT порт базы данных
DATABASE имя базы данных
USERNAME имя пользователя базы данных
PASSWORD пароль базы данных
6. Переместите сгенерированный код в соответствующий пакет соответствующего модуля.
controllerпапка соответствующий классу сущностиController, В категории каталога дляwebпод модульcontrollerпод пакетом
mapperпапка
соответствующий классу сущностиDAOслой, каталог содержитxmlфайл и класс интерфейса соответствующей сущности, будутxml文перейти кdaoмодульresourceвнизmapperпапка, вам нужно создать ее самостоятельноmapperпапку, переместите интерфейс вdaoпод модульmapperупаковать и добавить в класс интерфейса@MapperАннотация, вам нужно создать его самостоятельноmapperСумка. Также отметьте папку ресурсов какResources root
serviceСоответствует классу сущности интерфейса
implКласс сущности интерфейса, соответствующий классу
будетserviceИнтерфейс под каталогом перемещен вserviceпод модульserviceпод пакетом,implПереместите класс в каталог, чтобыserviceпод модульservice.implпод пакетом
po папка
Переместите классы в этом каталоге вmodelпод модульpoВ пакете и изменить отношения наследования, единое наследованиеBasePOкласс, потому чтоBasePOкласс содержитid,gmtCreate,gmtModified,deletedЭти базовые поля базы данных необходимо вручную удалить из сгенерированного класса сущностей. автоматически генерируется одновременноpoкласс отсутствует@TableName,@TableFieldАннотации необходимо добавлять вручную. Узнайте, как использовать аннотацииBasePOсвоего рода
7. МодификацияwebмодульaspectКруговые уведомления под пакетами
Этот аспект в основном используется для перехвата результата, возвращаемого уровнем контроллера, и инкапсуляции его в унифицированный результат для возврата.
8 Запустите проект webпод модульRunnerКласс является классом запуска, запустите этот класс для запуска, порт по умолчанию — 8081.