Здравствуйте, я новичок в мире Java и новичок в Spring Boot. Так что у меня тоже нет опыта работы с весной. Как новичок, я пишу это новичкам в Java. Эксперты, поправьте меня в комментариях, если что-то не так.

Что такое аннотация ..?

примечание в виде объяснения или комментария, добавленное к тексту или диаграмме.

Выше приведено словарное объяснение аннотации.

В Java

Аннотация - это тег, который используется для

  1. методы
  2. класс
  3. интерфейс

который добавляет дополнительную информацию о компиляторе Java / JVM (виртуальная машина Java).

Вы, возможно, уже имели опыт работы с некоторыми встроенными функциями Java, когда работали с основными материалами Java.

Нравиться,

  1. @override - используется для переопределения метода родительского класса в методе подкласса
  2. @SuppressWarnings - используется для подавления предупреждений, выдаваемых компилятором.
  3. @Deprecated - компилятор выводит предупреждение, потому что метод устарел, так как он может быть удален в будущих версиях. Так что лучше не использовать такой метод.

Давайте посмотрим на настраиваемую аннотацию Java

Пользовательские аннотации Java или Пользовательские аннотации Java просты в использовании и создании (это означает, что даже вы и я можем создавать аннотации в соответствии с нашими потребностями).

Элемент @interface используется для объявления аннотации.

Нравится

@interface parathan {}

для создания аннотации; аннотация должна содержать следующие символы

  • метод не должен иметь параметров
  • не должен бросать какой-либо пункт
  • могут иметь значения по умолчанию
  • должен возвращать класс, метод, перечисление, String как примитивный тип данных

Тип аннотации

  1. Аннотация маркера
  2. Аннотация с одним значением
  3. Многозначная аннотация
  4. Аннотации маркера - аннотации, внутри которых нет методов.

Например: @Deprecated @Override

@interface parathan {}

2. Однозначная аннотация - аннотация, имеющая один метод.

@interface parathan {

значение int ();

}

Для него можно указать значение по умолчанию, используя следующий фрагмент кода

@interface parathan {

int value () по умолчанию 0;

}

Применение одной аннотации в коде

@parathan (значение = 10)

3. многозначная аннотация - аннотация, имеющая более одного метода.

@interface parathan {

int age ();

Имя строки ();

Строка country ();

}

Применять Multi Annotation можно следующим образом

@parathan (возраст = 20, имя = «Паратхан Тиягалингам», страна = «Шри-Ланка»)

Встроенные аннотации, используемые в пользовательских аннотациях

  1. @Цель
  2. @Удержание
  3. @Inherited
  4. @ Документированный
  5. @Target - указывает, для какого типа будет использоваться аннотация.

Для этого нам нужно импортировать java.lang.annotation.ElementType

мы используем

@Target (ElementType.some_thing)

Здесь some_thing необходимо заменить следующими ключевыми словами, если вы используете там, где необходимо применить аннотацию.

Если вы собираетесь использовать его для «класса, интерфейса, перечисления»

тогда

@Target (ElementType.Type)

Если вы собираетесь использовать его для методов

тогда

@Target (ElementType.METHOD)

Например, использовать для класса и метода следует

@Target ({ElementType.Type, ElementType.METHOD})

@interface parathan {

int age ();

Имя строки ();

}

2. @Retention

Используется, чтобы указать, для какого уровня должна быть доступна аннотация.

Есть 3 уровня

  • ИСТОЧНИК - это относится к исходному коду, аннотация которого не будет доступна в скомпилированном классе.
  • КЛАСС - это относится к файлу .class, аннотация которого не будет доступна для JVM, но доступна для компилятора java. Итак, он будет в файле класса.
  • RUNTIME - время выполнения, доступное как для компилятора java, так и для jvm.

Eg:

@Retention (RetentionPolicy.RUNTIME)

@Target (ElementType.TYPE)

@interface parathan {

int age ();

Имя строки ();

}

Приведенный выше фрагмент представляет, что аннотация будет доступна во время выполнения, а аннотация предназначена для класса.

3. @Inherited: обычно аннотации не наследуются подклассам, поэтому используется аннотация к подклассу @Inherited.

@Inherited

@interface parathan {} // Теперь он также будет доступен для подкласса

@interface parathan {}

класс MainClass {}

class Subclass extends MainClass {} // подкласс расширяет суперкласс

Поскольку аннотация «parathan» передается по наследству;

MainClass использует аннотацию, поскольку SubClass расширяет MainClass,

следовательно, подкласс также может получить доступ к аннотации

4. @ Документировано

Он используется для включения аннотации в документацию Java.

Аннотация, которую я пишу здесь, связана с тем, что я публикую REST API в Java с использованием Spring Boot и MySQL как части.

Итак, мы используем много аннотаций, чтобы упростить наши задачи.

Если я сделал какие-то ошибки .. Прокомментируйте, пожалуйста, ниже. Или поделитесь с друзьями.

Счастливых программистов… !!