написать впереди
Я хотел написатьКак настроить стандартный Spring Boot Starter, но для того, чтобы лучше понять некоторые концепции дизайна и ключевые моменты Starter, некоторые детали извлекаются отдельно заранее, чтобы объяснить
В Maven pom.xml вы часто будете видеть код, похожий на следующий, в зависимостях:
<dependency>
<groupId>sample.ProjectA</groupId>
<artifactId>Project-A</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
здесь<optional>true</optional>
что это означает?
Тайна необязательного ключевого слова
Старые правила, нарисуйте картинку, чтобы проиллюстрировать проблему:
Поскольку проект C использует два класса из проекта A (OptionalFeatureAClass) и класса проекта B (OptionalFeatureBClass), если проект C не зависит от packageA и packageB, компиляция завершится ошибкой.
проект D зависит от проекта C, но для проекта D класс (OptionalFeatureAClass) и класс (OptionalFeatureBClass)является дополнительной функцией, поэтому для того, чтобы окончательный пакет war/ejb не содержал лишних зависимостей, используйте<optional>
Объявление текущей зависимости является необязательным и не будет наследоваться другими проектами по умолчанию (например, конечные классы в Java, которые не могут быть унаследованы другими классами).
Что, если проекту D действительно нужно использовать OptionalFeatureAClass в проекте C? Затем нам нужно явно добавить объявление зависимости проекта A в pom.xml проекта D, продолжайте смотреть на следующий рисунок:
Проект D должен использовать OptionalFeatureAClass проекта A, затем ему необходимо явно добавить зависимость от проекта A в файле pom.xml проекта D.
На этом этапе легко понять, почему Maven создает необязательное ключевое слово.Предположим, что это проект по сохранению базы данных (проект C), чтобы адаптироваться к большему количеству типов дизайна постоянства базы данных, таких как дизайн постоянства Mysql (проект A) и Oracle. дизайн персистентности (проект B), когда наш проект (проект D) использует дизайн персистентности проекта C, невозможно ввести и драйвер mysql, и драйвер oracle, поэтому мы должны явно указать один, вот и все
фактический случай
существуетspring-boot-actuatorВ файле pom.xml более 20 зависимостей являются необязательными.
Поскольку Spring Boot не может упаковать ненужные зависимости в ваш окончательный пакет jar, окончательный пакет jar, сгенерированный проектом с использованием привода Spring Boot, не будет содержать этих более 20 зависимых jar-файлов.Если вы хотите использовать какой из них, явно добавьте его к вашему проекту
В следующей статье настройка Spring Boot Starter также является этой стратегией, потому что Starter содержит определенные функции для обслуживания других проектов, аналогичную роли Project C в этой статье.
обратное применение
Если зависимости, введенные Project C, не добавлены<optional>true</optional>
, проект D должен зависеть от проекта C, но как насчет классов, которые используют только проект A? У Maven также есть решение, использующее ключевое слово исключения, нечего сказать, предыдущий код поймет:
<dependencies>
<dependency>
<groupId>top.dayarch.demo</groupId>
<artifactId>Project-C</artifactId>
<exclusions>
<exclusion>
<groupId>top.dayarch.demo</groupId>
<artifactId>Project-B</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Суммировать
На этом этапе, когда вы проектируете функциональные зависимости в будущем, вы должны понимать, как проектировать зависимости.Я рекомендую использовать необязательную форму здесь.Короче говоря, у вас есть все блюда, которые вы разрабатываете, и от которых зависят блюда, которые вы хотите съесть. «Хорошо, тогда мы смоделируем официальный стандарт, чтобы создать собственный стартер…блогПосещения нормализовались, приглашаем к общению
вопрос души
- Есть много инструментов сборки, используемых командой проекта детской обуви Gradle, вы знаете, как это представлено в Gradle?
- Пользовательский стартер, вы знаете, как выглядит структура официального стандартного стартера?
инструменты повышения производительности
Добро пожаловать, чтобы продолжать обращать внимание на публичный номер: «Сун Гун И Бин».
- Передовая технология Java для обмена галантереей
- Резюме эффективных инструментов | Ответ на «Инструменты»
- Анализ вопроса интервью и ответ
- Сбор технических данных | Ответ на «данные»
Узнайте о стеке технологий Java легко и весело, думая о чтении детективных романов, и постепенно разлагайте технические проблемы на основе принципов упрощения сложных проблем, превращения абстрактных проблем в конкретные и графические, а технология постоянно обновляется, пожалуйста, продолжайте платить внимание...