
Здравствуйте, я новичок в мире Java и новичок в Spring Boot. Так что у меня тоже нет опыта работы с весной. Как новичок, я пишу это новичкам в Java. Эксперты, поправьте меня в комментариях, если что-то не так.
Что такое аннотация ..?
примечание в виде объяснения или комментария, добавленное к тексту или диаграмме.
Выше приведено словарное объяснение аннотации.
В Java
Аннотация - это тег, который используется для
- методы
- класс
- интерфейс
который добавляет дополнительную информацию о компиляторе Java / JVM (виртуальная машина Java).
Вы, возможно, уже имели опыт работы с некоторыми встроенными функциями Java, когда работали с основными материалами Java.
Нравиться,
- @override - используется для переопределения метода родительского класса в методе подкласса
- @SuppressWarnings - используется для подавления предупреждений, выдаваемых компилятором.
- @Deprecated - компилятор выводит предупреждение, потому что метод устарел, так как он может быть удален в будущих версиях. Так что лучше не использовать такой метод.
Давайте посмотрим на настраиваемую аннотацию Java
Пользовательские аннотации Java или Пользовательские аннотации Java просты в использовании и создании (это означает, что даже вы и я можем создавать аннотации в соответствии с нашими потребностями).
Элемент @interface используется для объявления аннотации.
Нравится
@interface parathan {}
для создания аннотации; аннотация должна содержать следующие символы
- метод не должен иметь параметров
- не должен бросать какой-либо пункт
- могут иметь значения по умолчанию
- должен возвращать класс, метод, перечисление, String как примитивный тип данных
Тип аннотации
- Аннотация маркера
- Аннотация с одним значением
- Многозначная аннотация
- Аннотации маркера - аннотации, внутри которых нет методов.
Например: @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, имя = «Паратхан Тиягалингам», страна = «Шри-Ланка»)
Встроенные аннотации, используемые в пользовательских аннотациях
- @Цель
- @Удержание
- @Inherited
- @ Документированный
- @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 как части.
Итак, мы используем много аннотаций, чтобы упростить наши задачи.
Если я сделал какие-то ошибки .. Прокомментируйте, пожалуйста, ниже. Или поделитесь с друзьями.
Счастливых программистов… !!