Как легко проверить метод на наличие аннотации?
У меня есть объект method класса Method и аннотация MyAnnotation . К сожалению, не нашел в объекте method метод вроде hasAnnotation . Возникает вопрос: есть ли уже какие-то стандартные способы узнать аннотирован ли метод?
Отслеживать
задан 25 фев 2018 в 20:20
7,708 17 17 золотых знаков 70 70 серебряных знаков 132 132 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Через стандартный метод isAnnotationPresent():
Method method = . if (method.isAnnotationPresent(MyAnnotation.class))
В случае, ели кроме наличия аннотации нужно проверить еще и ее параметры, есть метод getAnnotation():
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class); if (annotation != null)
Проверьте, присутствует ли элемент в наборе в Java
В этом посте будет обсуждаться, как проверить, присутствует ли элемент в наборе в Java.
1. Использование Set.contains() метод
Стандартное решение для проверки наличия элемента в наборе — использование contains(o) метод. Возвращает true, если набор содержит элемент e такой, что Objects.equals(o, e) держит.
import java . util . Set ;
public class Main
public static void main ( String [ ] args )
Set
int item = 3 ;
boolean contains = values . contains ( item ) ;
System . out . println ( contains ) ; // true
Обратите внимание, что если класс не переопределяет equals() а также hashCode() методы, реализация этих методов по умолчанию проверяет только ссылочное равенство. Другими словами, если объект такого класса вставлен в набор, contains() метод вернет false. Например, рассмотрим следующий код, который возвращает false:
Java: как проверить, содержит ли строка подстроку
Проверка на наличие подстрок в строке — довольно распространенная задача в программировании. Например, иногда мы хотим разбить строку, если она содержит разделитель в точке. В других случаях мы хотим изменить поток, если строка содержит (или не имеет) определенную подстроку, которая может быть командой.
Есть несколько способов сделать это в Java, и большинство из них — то, что вы ожидаете увидеть и в других языках программирования. Однако один из подходов, уникальных для Java, — это использование класса Pattern , о котором мы расскажем позже в этой статье.
В качестве альтернативы вы можете использовать Apache Commons и вспомогательный класс StringUtils , который предлагает множество производных методов из основных методов для этой цели.
Основные способы Java
String.contains()
Первый и главный способ проверить наличие подстроки — это метод .contains() . Это обеспечивается самим классом String и очень эффективно.
Метод принимает CharSequence и возвращает true , если последовательность присутствует в строке, для которой мы вызываем метод:
String string = "Java"; String substring = "va"; System.out.println(string.contains(substring));
Запуск этого даст:
true
Примечание: метод .contains() чувствителен к регистру. Если бы мы попытались искать «Va» в нашем string , результат будет false .
Часто, чтобы избежать этой проблемы, так как мы не хотим быть чувствительны к регистру, вы должны сопоставить регистр обеих строк перед проверкой:
System.out.println(string.toLowerCase().contains(substring.toLowerCase())); // OR System.out.println(string.toUpperCase().contains(substring.toUpperCase()));
String.indexOf()
Метод .indexOf() возвращает индекс первого вхождения подстроки в строке и предлагает несколько конструкторов на выбор:
indexOf(int ch) indexOf(int ch, int fromIndex) indexOf(String str) indexOf(String str, int fromIndex)
Мы можем либо искать один символ со смещением или без него, либо искать строку со смещением или без него.
Метод вернет индекс первого вхождения, если присутствует, и -1 если нет:
String string = "Lorem ipsum dolor sit amet."; // You can also use unicode for characters System.out.println(string.indexOf('i')); System.out.println(string.indexOf('i', 8)); System.out.println(string.indexOf("dolor")); System.out.println(string.indexOf("Lorem", 10));
Запуск этого кода даст:
6 19 12 -1
- Первое вхождение i в слове ipsum , имеет индекс 6 от начала последовательности символов.
- Первое вхождение i со смещением 8 находится в слове sit , имеет индекс 19 от начала.
- Первое вхождение String dolor — имеет индекс 12 с начала.
- И, наконец, слова Lorem нет при смещении 10 .
В конечном счете, метод .contains() внутри себя вызывает метод .indexOf() . Это делает .indexOf() даже более эффективным, чем аналог (хотя и очень небольшой), хотя у него есть несколько иной вариант использования.
String.lastIndexOf()
В отличие от метода .indexOf() , который возвращает первое вхождение, метод .lastIndexOf() возвращает индекс последнего вхождения символа или строки со смещением или без него:
String string = "Lorem ipsum dolor sit amet."; // You can also use unicode for characters System.out.println(string.lastIndexOf('i')); System.out.println(string.lastIndexOf('i', 8)); System.out.println(string.lastIndexOf("dolor")); System.out.println(string.lastIndexOf("Lorem", 10));
Запуск этого кода даст:
19 6 12 0
Некоторые могут быть немного удивлены результатами и скажут:
lastIndexOf(‘i’, 8) должен был вернуть 19 , так как это последнее вхождение символа после 8-го символа в строке
Стоит отметить, что при запуске метода .lastIndexOf() последовательность символов меняется на противоположную. Отсчет начинается с последнего символа и идет к первому.
Это, как говорится — ожидаемый результат — 6 последнее появление символа после пропуска 8 элементов из конца последовательности.
Шаблон с регулярным выражением и Matcher
Класс Pattern существенно скомпилированное представление регулярного выражения. Он используется вместе с классом Matcher для сопоставления последовательностей символов.
Этот класс в первую очередь работает путем компиляции шаблона. Затем мы присваиваем другой шаблон экземпляру Matcher , который использует метод .find() для сравнения назначенных и скомпилированных шаблонов.
Если они совпадают, метод .find() приводит к true . Если шаблоны не совпадают, метод приводит к false .
Pattern pattern = Pattern.compile(".*" + "some" + ".*"); Matcher matcher = pattern.matcher("Here is some pattern!"); System.out.println(matcher.find());
true
Apache Commons
Из-за его полезности и распространенности в Java, во многих проектах Apache Commons включен в classpath. Это отличная библиотека со многими полезными функциями, часто используемыми в производстве, и проверка подстрок не является исключением.
Apache Commons предлагает класс StringUtils со многими вспомогательными методами для манипуляций со строками, нуль-проверка и т.д. Для решения этой задачи, мы можем использовать любого из методов .contains() , .indexOf() , .lastIndexOf() или .containsIgnoreCase() .
Если нет, то это так же просто, как добавить зависимость к вашему файлу pom.xml , если вы используете Maven:
org.apache.commons commons-lang3
Или добавив его через Gradle:
compile group: 'org.apache.commons', name: 'commons-lang3', version: ''
StringUtils.contains()
Метод .contains() довольно прост и очень похож на основной Java подход.
Единственное отличие состоит в том, что мы не вызываем метод для проверяемой строки (поскольку он не наследует этот метод), а вместо этого передаем искомую строку вместе со строкой, которую мы ищем:
String string = "Checking for substrings within a String is a fairly common task in programming."; System.out.println(StringUtils.contains(string, "common task"));
Запуск этого кода даст:
true
Примечание: этот метод чувствителен к регистру.
StringUtils.indexOf()
Естественно, метод .indexOf() также работает очень похоже на основной подход Java:
String string = "Checking for substrings within a String is a fairly common task in programming."; // Search for first occurrence of 'f' System.out.println(StringUtils.indexOf(string, 'f')); // Search for first occurrence of 'f', skipping the first 12 elements System.out.println(StringUtils.indexOf(string, 'f', 12)); // Search for the first occurrence of the "String" string System.out.println(StringUtils.indexOf(string, "String"));
Запуск этого кода даст:
9 45 32
StringUtils.indexOfAny()
Метод .indexOfAny() принимает список символов, а не один, что позволяет нам искать первое вхождение любого из переданных символов:
String string = "Checking for substrings within a String is a fairly common task in programming."; // Search for first occurrence of 'f' or 'n', whichever comes first System.out.println(StringUtils.indexOfAny(string, 'f', 'n')); // Search for the first occurrence of "String" or "for", whichever comes first System.out.println(StringUtils.indexOfAny(string, "String", "for"));
Запуск этого кода даст:
StringUtils.indexOfAnyBut()
Метод .indexOfAnyBut() ищет первое вхождение любого символа, что это не в предоставленном комплекте:
String string = "Checking for substrings within a String is a fairly common task in programming."; // Search for first character outside of the provided set 'C' and 'h' System.out.println(StringUtils.indexOfAny(string, 'C', 'h')); // Search for first character outside of the provided set 'C' and 'h' System.out.println(StringUtils.indexOfAny(string, "Checking", "for"));
Запуск этого кода даст:
2 14
StringUtils.indexOfDifference()
Метод .indexOfDifference() сравнивает два массива символов, и возвращает индекс первого символа, отличающийся:
String s1 = "Hello World!" String s2 = "Hello world!" System.out.println(StringUtils.indexOfDifference(s1, s2));
Запуск этого кода даст:
StringUtils.indexOfIgnoreCase()
Метод .indexOfIgnoreCase() возвращает индекс первого вхождения символа в последовательности символов, игнорируя случай:
String string = "Checking for substrings within a String is a fairly common task in programming." System.out.println(StringUtils.indexOf(string, 'c')); System.out.println(StringUtils.indexOfIgnoreCase(string, 'c'));
Запуск этого кода даст:
StringUtils.lastIndexOf()
И, наконец, метод .lastIndexOf() работает почти так же, как обычный Java-метод:
String string = "Lorem ipsum dolor sit amet."; // You can also use unicode for characters System.out.println(StringUtils.lastIndexOf(string, 'i')); System.out.println(StringUtils.lastIndexOf(string, 'i', 8)); System.out.println(StringUtils.lastIndexOf(string, "dolor")); System.out.println(StringUtils.lastIndexOf(string, "Lorem", 10));
Запуск этого кода даст:
19 6 12 0
StringUtils.containsIgnoreCase()
В методе .containsIgnoreCase() , проверяет содержит строка подстроку, не обращая внимания на случай:
String string = "Checking for substrings within a String is a fairly common task in programming."; System.out.println(StringUtils.containsIgnoreCase(string, "cOmMOn tAsK"));
Запуск этого кода даст:
true
StringUtils.containsOnly()
Метод .containsOnly() проверяет, если последовательность символов содержит только указанные значения.
Это может вводить в заблуждение, поэтому можно сказать, что это еще один способ — он проверяет, состоит ли последовательность символов только из указанных символов. Он принимает либо строку, либо последовательность символов:
String string = "Hello World!" System.out.println(StringUtils.containsOnly(string, 'HleWord!')); System.out.println(StringUtils.containsOnly(string, "wrld"));
Запуск этого даст:
true false
Строка «Hello World!» действительно построена только из символов в последовательности ‘HleWord!’ .
Примечание: не все символы из последовательности необходимо использовать в методе string для возврата true. Важно то, что в нем нет символа, которого нет в последовательности символов.
StringUtils.containsNone()
Метод .containsNone() , содержит ли строка какой — либо из «запрещенных» символов из набора:
String string = "Hello World!" System.out.println(StringUtils.containsNone(string, 'xmt')); System.out.println(StringUtils.containsNone(string, "wrld"));
Запуск этого кода дает:
true false
StringUtils.containsAny()
И наконец, метод .containsAny() возвращает true , если последовательность символов содержит какой-либо из переданных параметров в форме последовательности символов или строки:
String string = "Hello World!" System.out.println(StringUtils.containsAny(string, 'h', 'm')); System.out.println(StringUtils.containsAny(string, "hell"));
true true
Подключаемый модуль Service Fabric для разработки приложений Eclipse на Java
Eclipse является одной из наиболее часто используемых интегрированных сред разработки (IDE) для разработчиков Java. В этой статье описывается, как настроить среду разработки Eclipse для работы с Azure Service Fabric. Вы узнаете, как установить подключаемый модуль Service Fabric, создать приложение Service Fabric и развернуть его в локальном или удаленном кластере Service Fabric в Eclipse.
Подключаемый модуль Eclipse сейчас не поддерживается в Windows.
Убедитесь, что JDK 8 установлен в системе и выбран в Eclipse.
Установка и обновление подключаемого модуля Service Fabric в Eclipse
Вы можете установить подключаемый модуль Service Fabric в Eclipse. Он позволяет упростить процесс создания и развертывания служб Java.
Для подключаемого модуля Service Fabric требуется Eclipse Neon или более поздняя версия. Чтобы проверить версию Eclipse, выполните инструкции под этим примечанием. Если у вас установлена более ранняя версия Eclipse, скачайте более новые версии с сайта Eclipse. Не рекомендуется устанавливать Eclipse поверх существующей установки (перезаписывать). Вы можете удалить ее перед запуском установщика или установить новую версию в другом каталоге.
В Ubuntu мы рекомендуем установить Eclipse непосредственно с сайта, а не с помощью установщика пакета ( apt или apt-get ). Так вы получите последнюю версию Eclipse.
Установите Eclipse Neon или более поздней версии с сайта Eclipse. Также установите Buildship 2.2.1 или более поздней версии (подключаемый модуль Service Fabric не совместим с более ранними версиями Buildship):
- Чтобы проверить версии установленных компонентов, в Eclipse выберите Help (Справка)>About Eclipse (Сведения об Eclipse)>Installation Details (Сведения об установке) .
- Сведения об обновлении Buildship см. на странице Eclipse Buildship: Eclipse Plug-ins for Gradle (Eclipse Buildship. Подключаемые модули Eclipse для Gradle).
- Чтобы проверить и установить обновления для Eclipse, выберите Help>Check for Updates (Справка > Проверить обновления).
Установите подключаемый модуль Service Fabric. В Eclipse щелкните Help (Справка)>Install New Software (Установка нового программного обеспечения) .
- В поле Work with (Работа с) введите https://servicefabricdownloads.blob.core.windows.net/eclipse/ .
- Нажмите кнопку Добавить.
- Выберите подключаемый модуль Service Fabric и нажмите кнопку Next (Далее).
- Выполните установку и примите условия лицензионного соглашения на использование программного обеспечения корпорации Майкрософт.
Если подключаемый модуль Service Fabric уже установлен, необходимо использовать последнюю версию.
- Чтобы проверить наличие доступных обновлений, выберите Help (Справка)>About Eclipse (Сведения об Eclipse)>Installation Details (Сведения об установке) .
- В списке установленных подключаемых модулей выберите Service Fabric и щелкните Update (Обновить). После этого будут установлены доступные обновления.
- После обновления подключаемого модуля Service Fabric также обновите проект Gradle. Щелкните правой кнопкой мыши build.gradle и выберите Обновить.
Если установка или обновление подключаемого модуля Service Fabric выполняется медленно, это может быть связано с настройкой Eclipse. Eclipse собирает метаданные обо всех изменениях на сайтах обновления, зарегистрированных с помощью экземпляра Eclipse. Чтобы ускорить процесс проверки и установки обновления подключаемого модуля Service Fabric, щелкните Available Software Sites (Доступные сайты программного обеспечения). Снимите флажки напротив всех сайтов, которые не указывают на расположение подключаемого модуля Service Fabric (https://servicefabricdownloads.blob.core.windows.net/eclipse/ ).
Если Eclipse не работает должным образом на компьютере Mac или требуется запуск от имени суперпользователя, перейдите в папку ECLIPSE_INSTALLATION_PATH и откройте подпапку Eclipse.app/Contents/MacOS. Запустите Eclipse, выполнив команду ./eclipse .
Создание приложения Service Fabric в Eclipse
- В Eclipse выберите File>New>Other (Файл > Создать > Другое). Выберите Проект Service Fabric и нажмите кнопку Далее.

- Введите имя проекта и нажмите кнопку Next (Далее).

- В списке шаблонов выберите Service Template (Шаблон службы). Выберите тип шаблона службы (субъект, без отслеживания состояния, контейнер или гостевой двоичный файл) и нажмите кнопку Next (Далее).

- Введите имя службы и сведения о ней, а затем нажмите кнопку Finish (Готово).

- Если вы создаете первый проект Service Fabric, в диалоговом окне Open Associated Perspective (Открыть связанную перспективу) нажмите кнопку Yes (Да).

- Новый проект выглядит следующим образом:

Создание приложения Service Fabric в Eclipse

- Щелкните правой кнопкой мыши новое приложение Service Fabric, а затем выберите Service Fabric.
- В контекстном меню выберите один из следующих вариантов:
- Чтобы выполнить сборку приложения без очистки, щелкните Build Application (Создать приложение).
- Для выполнения чистой сборки приложения щелкните Rebuild Application (Повторно создать приложение).
- Чтобы выполнить очистку приложения от артефактов сборки, щелкните Clean Application (Очистить приложение).
Развертывание приложения Service Fabric в локальный кластер с помощью Eclipse
После создания приложения Service Fabric выполните следующие действия, чтобы развернуть его в локальный кластер.

- Если вы еще не запустили локальный кластер, следуйте инструкциям, описанным в разделе о настройке локального кластера, чтобы запустить его и проверить, что он работает.
- Щелкните правой кнопкой мыши приложение Service Fabric, а затем выберите Service Fabric.
- В контекстном меню выберите Deploy Application (Развернуть приложение).
- Ход выполнения операции развертывания можно отслеживать в окне консоли.
- Чтобы проверить, что приложение работает, откройте Service Fabric Explorer в локальном кластере в окне браузера http://localhost:19080/Explorer . Разверните узел приложений и проверьте, работает ли приложение.
Сведения об отладке приложения в Eclipse с помощью локального кластера см. в статье Отладка приложения Java Service Fabric с помощью Eclipse.
Вы также можете развернуть приложение в локальный кластер с помощью команды публикации приложения:

- Щелкните правой кнопкой мыши приложение Service Fabric, а затем выберите Service Fabric.
- В контекстном меню щелкните Publish Application. (Опубликовать приложение. ).
- В окне публикации приложения выберите PublishProfiles/Local.json как целевой профиль, а затем нажмите кнопку Publish (Опубликовать). По умолчанию профиль публикации Local.json настроен для публикации в локальный кластер. Дополнительные сведения о параметрах подключения и конечной точки, присутствующих в профилях публикации, см. в следующем разделе.
Публикация приложения Service Fabric в Azure с помощью Eclipse
Чтобы опубликовать приложение в облако, сделайте следующее:
-
Чтобы опубликовать свое приложение в защищенный кластер в облаке, вам понадобится сертификат X.509 для обмена данными с кластером. В средах тестирования и разработки используемый сертификат часто является сертификатом кластера. В рабочих средах должен использоваться сертификат клиента, отличный от сертификата кластера. Вам нужен сертификат и закрытый ключ. Файл сертификата (и ключа) должен быть в формате PEM. Вы можете создать PEM-файл, содержащий сертификат и закрытый ключ, из PFX-файла с помощью следующей команды openssl:
openssl pkcs12 -in your-cert-file.pfx -out your-cert-file.pem -nodes -passin pass:your-pfx-password
- В поле ConnectionIPOrURL содержится IP-адрес или URL-адрес кластера. Обратите внимание, что значение не содержит схему URL-адреса ( https:// ).
- По умолчанию для поля ConnectionPort должно использоваться значение 19080 , если только вы не изменили порт для кластера.
- Поле ClientKey должно указывать на файл в формате PEM — с расширениями .pem или .key на локальном компьютере, который содержит закрытый ключ для сертификата клиента или кластера.
- Поле ClientCert должно указывать на файл в формате PEM — с расширениями .pem или .crt на локальном компьютере, который содержит данные сертификата клиента или кластера.

В защищенных кластерах Linux, если ваше приложение содержит службы Reliable Services, вам также потребуется настроить сертификат, который ваши службы могут использовать для вызова API-интерфейсов среды выполнения Service Fabric. Дополнительные сведения см. в разделе Настройка приложения Reliable Services для запуска на кластерах Linux.
Сведения о том, как быстро развернуть написанное на Java приложение Reliable Services в Service Fabric в защищенный кластер Linux, см. в этом кратком руководстве.
Развертывание приложения Service Fabric с помощью конфигураций запуска Eclipse
Альтернативным способом развертывания приложения Service Fabric является использование конфигураций запуска Eclipse.

- В Eclipse выберите Run>Run Configurations (Запуск > Конфигурации запуска).
- Выберите конфигурацию запуска ServiceFabricDeployer в разделе Grade Project (Проект Gradle).
- В правой области на вкладке Arguments (Аргументы) проверьте, чтобы параметры ip, port, clientCert и clientKey были соответствующим образом настроены для развертывания. По умолчанию параметры заданы для развертывания в локальный кластер, как показано на следующем снимке экрана. Для публикации своего приложения в Azure вы можете изменить параметры, чтобы они содержали сведения о конечной точке и учетные данные безопасности для кластера Azure. Дополнительные сведения см. в разделе выше, посвященном публикации приложения Service Fabric в Azure с помощью Eclipse.
- Рабочая папка должна указывать на приложение, которое необходимо развернуть. Чтобы изменить приложение, нажмите кнопку Workspace (Рабочая область) и выберите нужное приложение.
- Щелкните Apply (Применить), а затем — Run (Запуск).
Приложение будет собрано и развернуто через несколько секунд. Состояние развертывания можно отслеживать в Service Fabric Explorer.
Добавление службы Service Fabric в приложение Service Fabric
Чтобы добавить службу Service Fabric в имеющееся приложение Service Fabric, сделайте следующее:
- Щелкните правой кнопкой мыши проект, в который нужно добавить службу, и выберите Service Fabric.

- Щелкните Add Service Fabric Service (Добавить службу Service Fabric) и выполните действия для добавления службы в проект.
- Выберите шаблон службы и нажмите кнопку Next (Далее).

- Введите имя службы (и другие сведения при необходимости), а затем нажмите кнопку Add Service (Добавить службу).

- После добавления службы общая структура проекта будет аналогична приведенной ниже.

Изменение версий манифеста приложения Service Fabric на Java
Чтобы изменить версии манифеста, щелкните проект правой кнопкой мыши, щелкните пункт Service Fabric, а затем в раскрывающемся меню выберите Изменить версии манифеста. В мастере можно обновить версии манифеста приложения, служб и версии пакетов кода, конфигурации и данных.
Если вы установите флажок Автоматическое обновление версий приложения и службы, а затем обновите версию, то версии манифестов обновятся автоматически. Например, если вы сначала установите флажок, а затем обновите версию кода с 0.0.0 до 0.0.1, а затем щелкните Готово, то версия манифеста служб и манифеста приложения будет автоматически обновлена до 0.0.1.
Обновление приложения Service Fabric на Java
Чтобы рассмотреть сценарий обновления, предположим, вы создали проект App1 с помощью подключаемого модуля Service Fabric в Eclipse. Он был развернут с помощью подключаемого модуля для создания приложения с именем fabric:/App1Application. Тип приложения — App1ApplicationType, а версия приложения — 1.0. Теперь необходимо обновить приложение, не прерывая доступ к нему.
Сначала внесите изменения в приложение, а затем выполните повторную сборку службы в измененном виде. Замените файл манифеста измененной службы (ServiceManifest.xml) обновленной версией для этой службы (а также все необходимые файлы из каталогов Code, Config и Data). Замените также манифест приложения (ApplicationManifest.xml) обновленной версией для приложения и измененной службы.
Чтобы обновить приложение с помощью Eclipse, можно создать дубликат профиля конфигурации запуска. Затем вы сможете использовать его для обновления приложения.
- Выберите Run>Run Configurations (Запуск > Конфигурации запуска). Щелкните небольшую стрелку слева от Gradle Project (Проект Gradle) в области слева.
- Щелкните правой кнопкой мыши ServiceFabricDeployer и выберите Duplicate (Дублировать). Введите новое имя для этой конфигурации, например ServiceFabricUpgrader.
- На панели справа на вкладке Arguments (Аргументы) измените -Pconfig=’deploy’ на -Pconfig=’upgrade’, а затем нажмите кнопку Apply (Применить).
Это действие позволяет создать и сохранить профиль конфигурации запуска, который можно использовать для обновления приложения в любое время. При этом вы также получаете последнюю обновленную версию типа приложения из файла манифеста приложения.
Обновление приложения занимает несколько минут. Его можно отслеживать в Service Fabric Explorer.
Перенос устаревших приложений Java из Service Fabric для использования с Maven
Мы недавно переместили библиотеки Java для Service Fabric из пакета SDK для Java Service Fabric в репозиторий Maven. В новых приложениях, созданных с помощью Eclipse, создаются последние обновленные проекты (что позволяет работать с Maven). Но вы можете обновить существующие приложения Service Fabric без учета состояния или Java Reliable Actor, в которых ранее применялся пакет SDK для Service Fabric Java, чтобы использовать зависимости Java для Service Fabric из Maven. Выполните инструкции, чтобы устаревшие приложения могли взаимодействовать с Maven.
Дальнейшие действия
- Ознакомьтесь со статьей Краткое руководство. Развертывание приложения надежных служб Java в Service Fabric, чтобы узнать о том, как быстро создать приложение Reliable Services на Java и развернуть его локально в Azure.
- Сведения об отладке приложения Java в локальном кластере см. в статье Отладка приложения Java Service Fabric с помощью Eclipse.
- Сведения о мониторинге и диагностике приложений Service Fabric см. в статье Мониторинг и диагностика состояния служб в локальной среде разработки.
