Перейти к основному содержимому

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы рассмотрим, как заменить EmbeddedServletContainerCustomizer и ConfigurableEmbeddedServletContainer в Spring Boot 2.

Эти классы были частью предыдущих версий Spring Boot, но были удалены, начиная с Spring Boot 2. Конечно, функциональность по-прежнему доступна через интерфейс WebServerFactoryCustomizer и класс ConfigurableServletWebServerFactory .

Давайте посмотрим, как их использовать.

2. До Spring Boot 2

· 4 мин. чтения

1. Обзор

Кэши сборки могут ускорить процесс сборки кода и, таким образом, повысить производительность разработчиков. В этой статье мы узнаем об основах кэша сборки Gradle .

2. Что такое кэш сборки Gradle?

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

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

· 2 мин. чтения

1. Обзор

В этой статье мы рассмотрим ошибку «переменная, возможно, не была инициализирована» в программах Java. Эта ошибка возникает, когда мы объявляем переменную без ее инициализации . Поэтому обсудим ошибку на примере и предложим некоторые решения для ее решения.

2. Ошибка Java: «Возможно, переменная не была инициализирована»

Если мы объявим локальную переменную без начального значения, мы получим ошибку. Эта ошибка возникает только для локальных переменных, поскольку Java автоматически инициализирует переменные экземпляра во время компиляции (устанавливает 0 для целых чисел, false для логических значений и т . д .). Однако локальным переменным необходимо значение по умолчанию, поскольку компилятор Java не позволяет использовать неинициализированные переменные.

Напишем простой код с неинициализированной переменной:

· 7 мин. чтения

1. Обзор

В этом руководстве мы продемонстрируем различные примеры форматирования с помощью `` метода printf() . ****

Этот метод является частью класса java.io.PrintStream и обеспечивает форматирование строк, аналогичное функции printf() в C.

2. Синтаксис

· 3 мин. чтения

1. Введение

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

Обычно требуется, чтобы наша Java-программа была совместима во время компиляции с одной версией Java (скажем, Java 6), но необходимо использовать другую версию (скажем, Java 8) в наших инструментах разработки и, возможно, другую версию для запуска приложения. .

В этой быстрой статье мы продемонстрируем, как легко добавить средства защиты от несовместимости на основе версии Java и как можно использовать подключаемый модуль Animal Sniffer, чтобы помечать эти проблемы во время сборки, проверяя наш проект на соответствие ранее сгенерированным сигнатурам.

2. Установка -source и -target компилятора Java

· 5 мин. чтения

1. Обзор

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

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

В этом руководстве мы рассмотрим, как создать собственный архетип, а затем как использовать его для создания проекта Maven с помощью плагина maven-archetype-plugin.

2. Дескриптор архетипа Maven

· 6 мин. чтения

1. Обзор

Maven Polyglot — это набор основных расширений Maven, который позволяет писать модель POM на любом языке. Это включает в себя множество скриптов и языков разметки, отличных от XML.

Основная цель полиглота Maven — уйти от XML, так как в настоящее время он больше не используется.

В этом руководстве мы сначала начнем с понимания концепции основного расширения Maven и проекта Maven Polyglot.

Затем мы покажем, как написать расширение ядра Maven, позволяющее создавать модель POM из файла JSON, а не из знаменитого файла pom.xml.

2. Механизм загрузки расширения Maven Core

· 18 мин. чтения

1. Обзор

В этой статье мы представляем Spring Boot Actuator. Сначала мы рассмотрим основы, а затем подробно обсудим, что доступно в Spring Boot 2.x и 1.x.

Мы узнаем, как использовать, настраивать и расширять этот инструмент мониторинга в Spring Boot 2.x и WebFlux, используя преимущества модели реактивного программирования. Затем мы обсудим, как сделать то же самое с помощью Boot 1.x.

Spring Boot Actuator доступен с апреля 2014 года вместе с первым выпуском Spring Boot.

С выпуском Spring Boot 2 Actuator был переработан, и были добавлены новые захватывающие конечные точки.

Мы разделили это руководство на три основных раздела:

· 2 мин. чтения

1. Обзор

В этом руководстве мы кратко рассмотрим SpringBootServletInitializer .

Это расширение WebApplicationInitializer , которое запускает SpringApplication из традиционного архива WAR , развернутого в веб-контейнере. Этот класс связывает компоненты Servlet , Filter и ServletContextInitializer из контекста приложения с сервером.

Расширение класса SpringBootServletInitializer также позволяет нам настраивать наше приложение, когда оно запускается контейнером сервлета, путем переопределения метода configure() .

2. Инициализатор SpringBootServlet

· 7 мин. чтения

1. Введение

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

2. Весенние настройки

Прежде чем мы начнем, давайте настроим тестовое приложение. Мы будем использовать Spring Boot версии 2.5.4 с Spring Web, Spring Actuator и Spring Security в качестве зависимостей. В pom.xml мы добавим spring-boot-maven-plugin с конфигурацией для упаковки нашего приложения в jar-файл:

<plugin> 
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<finalName>springStartupApp</finalName>
<mainClass>com.foreach.springStart.SpringStartApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>