Рубрики
Без рубрики

Настройка вашего приложения Java com Quarkus @ConfigProperty

Никак. Неизбежно программное обеспечение, нужны какие-то настройки. Есть учетные данные… Помеченные кварками, java, ptbr, brazilianandevs.

Никак. Неизбежно программное обеспечение, нужны какие-то настройки. Есть учетные данные для доступа к базе данных, в адрес некоторых внешних услуг, правил журнала, etc…

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

Мы будем создавать microsserviço, который отвечает на запросы GET на конечной точкой называется /config все настройки сохраняются. Также давайте посмотрим, что источники установки, понять приоритеты и конфигурации, как Quarkus обрабатывает параметры среды, производства и испытания.

Во-первых, мы рассмотрим создание проекта Quarkus. Для этого достаточно использовать следующую команду.

mvn io.quarkus:quarkus-maven-plugin:1.6.0.Final:create \
    -DprojectGroupId=config \
    -DprojectArtifactId=config \
    -Dextensions="resteasy-jackson" \
    -DclassName="config.ConfigResource" \
    -Dpath="/config"

Эта команда уже создает приложения Quarkus файл с именем ConfigResource . Теперь просто добавим следующий код в этот файл.

package config;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.eclipse.microprofile.config.inject.ConfigProperty;
import java.util.Map;
import java.util.HashMap;

@Path("/config") 
public class ConfigResource {  
  @ConfigProperty(name="config") // 1
  String config;

  @ConfigProperty(name="valorDefinido", defaultValue="Uma configuração") // 2
  String valorDefinido;

  @ConfigProperty(name="inteiro") // 3
  Integer intConfig;

  @ConfigProperty(name="C*O~M_caracteres-especiais!á") // 4
  String caracteresEspeciais;

  @GET
  @Produces(MediaType.APPLICATION_JSON) 
  public Map getConfigs() { // 5
    Map configs = new HashMap<>();
    configs.put("Configuração: ", config);
    configs.put("Valor definido: ", valorDefinido);
    configs.put("Configuração inteira: ", intConfig);
    configs.put("Caracteres especiais: ", caracteresEspeciais);

    return configs; 
  }
}

Ресурсы Dentro do diretório/МЕТАИНФОРМАЦИЯ, существующая в arquivo chamado application.properties . Также необходимо изменить файл, чтобы оставаться таким образом:

config=Configuração simples
C*O~M_caracteres-especiais!á=Usando caracteres especiais
inteiro=2

Теперь давайте посмотрим, что каждая строка делает

  1. Аннотации @ConfigProperty делает Quarkus знать, что переменная будет получать некоторые настройки. Имя параметра задается значение атрибута name .

  2. В случае, если сервер не имеет значение из конфигурации, то услуга не будет ошибкой во времени, чтобы подняться. Однако, некоторые параметры могут иметь значения по умолчанию, это значение по умолчанию задается с помощью атрибута defaultValue .

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

  4. Названия параметров могут содержать точку (.), дефис (-), underscore (_) и другие специальные символы.

  5. Это метод, который возвращает все параметры используются.

Уже почти все готово, чтобы мы могли запускать приложение. Во-первых, мы будем удалять тесты созданы.

Теперь достаточно запустить эту программу с помощью команды:

mvn quarkus:dev

И получить доступ к url http://localhost:8080/config чтобы увидеть параметры. Если все получилось, появится изображение, похожее на это ниже:

Nfs vi – dentro da anotaçao @ConfigProperty, nfs colocamos – это путь к доблести, предназначенный для конфигурирования в отношении алгуна лугара (без каких-либо примеров, например, для использования в аркиво приложение.свойства ). Но где же это место, что значение параметра берется?

Это место может быть свойства системы, переменные среды, специальный файл под названием .env , o arquivo de/| применение.свойства или любой другой источник, который разработчик внесенные вручную .

Имена переменных среды, quarkus по тем же правилам, microprofile .

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

Он делает это, следуя следующем порядке:

  1. Свойства системы
  2. Переменные среды
  3. Архив .env
  4. O приложение arquivo.свойства
  5. Значение по умолчанию размещены в аннотации @ConfigProperty

Если файл не находится ни в источник установки, приложение не будет расти и даст ошибку

javax.enterprise.inject.spi.DeploymentException: No config value of type [] exists for: 
at io.quarkus.arc.runtime.ConfigRecorder.validateConfigProperties(ConfigRecorder.java:37)

С Quarkus становится очень легко поменять параметры в различных ситуациях. Это делается с помощью инструмента, а также юридические вызова Профиль конфигурации .

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

По умолчанию Quarkus работает с 3 различных профилей: производство (prod), разработки (dev) и тестирования (test). Профиль развития включается, когда sumus команду mvn quarkus:dev, и тестирования активируется, когда мы выполняем тесты.

Para exemplificar iso, ainda com o servidor de pé vamos adicionar uma nova linha na no nosso применение.свойства . Свойства для работы с профилем развития. Наш файл должен выглядеть так:

config=Configuração simples
C*O~M_caracteres-especiais!á=Usando caracteres especiais
inteiro=2
#Nova propriedade colocada abaixo
%dev.inteiro=10

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

Как мы используем profixo “%dev”, то это новое значение является допустимым только во время отладки. Если приложение не находился в режиме отладки, то значение параметра будет использоваться другой (в данном случае 2).

Я влюблен в эту часть конфигурации в Quarkus. Что я больше всего мне нравится, что это так до смешного легко изменить собственности в производственной среде (через переменные среды).

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

Да, и код, сегодня можно найти нет github .

Оригинал: “https://dev.to/lucasscharf/configurando-sua-aplicacao-java-com-quarkus-configproperty-2h2c”