Эта статья включена в облачное хранилище кода: https://gitee.com/bingqilinpeishenme/Java-Tutorials. В этой статье указан адрес загрузки исходного кода: https://gitee.com/bingqilinpeishenme/multi-module-demo.
Что такое многомодульная разработка? Как показано на рисунке, каждый пакет в проекте соответствует полному проекту, который в IDEA называется модулем, и каждый модуль имеет полную структуру проекта: независимый файл pom, независимый файл конфигурации, независимые модули вывода файла компиляции и т. д.
Итак, как создается проект с такой структурой проекта?
Mysql Визуализации многомодульной разработки выглядят следующим образом:
Разработка родительского проекта
Родительский проект можно использовать для унифицированного управления зависимостями всех проектов.Как показано на рисунке, если в родительском проекте есть зависимость mysql, то все подпроекты, наследующие этот родительский проект, также будут наследовать зависимость mysql.
1. Создайте проект
2. Выполните базовую настройку проекта для IDEA.
Конфигурация кодировки символов
Аннотация вступает в силу
Выбор версии компиляции Java
3. Запишите файл pom родительского проекта
См. комментарии для получения подробной информации о файле pom.
Упаковка родительского проекта должна быть установлена на pom
Разница между зависимостями и DependencyManagement
зависимости Внедрить зависимости в текущий проект. Если подпроект наследует проект, он также введет зависимости в подпроект
DependencyManagement только объявляет зависимости и фактически не вводит их, поэтому подпроекты должны явно объявлять зависимости, которые им нужно использовать.
Если зависимость объявлена в подпроекте, она не будет унаследована от родительского проекта, только если зависимость прописана в подпроекте и конкретная версия не выполняется, она будет унаследована от родительского проекта, и версия и область действия будут унаследованы от родительского проекта.обе читаются из родительского pom
Если в подпроекте указан номер версии, будет использоваться версия jar, указанная в подпроекте.
Разработка подпроекта
Этапы разработки подпроекта следующие:
Создать модуль на основе проекта
изменить пом
Напишите конфигурацию, если нет необходимости писать
написать код
1. Создайте мультиобъект
1. Создать модуль на основе проекта
После создания мультиобъекта откройте pom, и вы увидите
На этом этапе откройте pom родительского проекта, и вы увидите
2. Измените помпу
POM полного многоцелевого проекта выглядит следующим образом:
@TableName("cmfz_admin") @Data public class Admin { /** * 主键属性 @TableId * * value 该属性对应的数据库表中的字段名 * type 主键自增的类型 AUTO 代表自动递增 */ @TableId(value = "id",type = IdType.AUTO) private Integer id; /** * 非主键属性 @TableField * @TableField("username") 参数为该属性对应的数据库表中的字段名 * */ private String username;
private String password;
private String salt;
}
2. Выполните шаги, описанные выше, чтобы создать мультидао.
Для модуля dao разница в том, что класс сущностей в multi-entity нужно использовать в multi-dao, но как использовать класс сущностей в другом проекте в модуле dao?
Импортировать несколько объектов в несколько дао, как зависимость
public List<Admin> adminList(){ return adminDao.selectList(null); }
}
4. Создайте мультиконтроллерный модуль
Модуль с несколькими контроллерами — это модуль, в котором находится класс запуска. Итак, мы поместили файл конфигурации, класс запуска и встроенный в SpringBoot плагин maven в этот проект.
@RestController public class AdminController { @Autowired private AdminService adminService;
@RequestMapping("adminList") public List<Admin> adminList(){ return adminService.adminList(); } }
5. Запустите проект
Запустите проект, запустив класс
Адрес доступа: http://localhost:8802/adminList Вы можете увидеть следующие эффекты
Если вы хотите использовать плагин для запуска, вам нужно сначала очистить и установить родительский проект.
6. Тест
написать тестовый класс
Эффект запуска тестового метода следующий
7. Упаковка проекта
Примечание. В каком модуле каким модулем упакован класс запуска.
Упаковка проекта через maven
Найдите упакованный проект и запустите проект через java -jar
Адрес доступа: http://localhost:8802/adminList Вы можете увидеть следующие эффекты
Вопросы-Ответы
1. Проблема циклической зависимости
image.png
Подсказка сообщения об ошибке:
Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [qrcode-common,qrcode-manager-pojo] are excluded from annotation processing
Анализ причин: круговая мертвая петля зависимостей
Решение: изменить зависимости в модуле
2. IDEA, изменяющая pom, не вступает в силу.
При использовании IDEA для разработки нескольких проектов обнаружил такую проблему: после изменения файла pom, как бы вы его не обновляли, это не вступит в силу
Решение: просто перезапустите IDEA
Суммировать
В этой статье указан адрес загрузки исходного кода: https://gitee.com/bingqilinpeishenme/multi-module-demo.
Поздравляем с завершением этой главы и аплодисменты вам! Если эта статья была вам полезна, пожалуйста, помогите поставить лайк, прокомментировать, переслать, это очень важно для автора, спасибо.
Давайте еще раз рассмотрим цели обучения в этой статье.
Овладейте многомодульной разработкой в SpringBoot
Чтобы узнать больше об использовании SpringBoot, продолжайте обращать внимание на эту серию руководств.
Добро пожаловать в мою официальную учетную запись: Java Notes г-на Лу, которая будет обновлять графические руководства по технологии Java и видеоуроки, опыт изучения Java, опыт собеседований по Java и опыт практической разработки Java в долгосрочной перспективе.