Полезные аннотации Java - PullRequest
       42

Полезные аннотации Java

18 голосов
/ 04 декабря 2009

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

Я действительно заинтересован в общих задачах по разработке вместо того, чтобы знать, почему @ManyToOne(optional=false) в JPA является удивительным ...

Включите аннотацию и описание того, почему это полезно для общего развития.

Ответы [ 14 ]

3 голосов
/ 04 декабря 2009

Вот некоторые аннотации, которые я использую в повседневной разработке

Spring:

  1. @ Autowired - используется для автоматической подачи бобов
  2. @ Rollback - при значении true откат всех операций с БД, выполненных внутри тестового примера

JUnit:

  1. @ Test - Скажите, что метод является тестовым примером
  2. @ Игнорировать - Если вы хотите игнорировать любой из тестовых случаев
  3. @ До - код, который должен запускаться перед каждым тестом

JPA:

  1. @ Entity - Чтобы сказать, что POJO является JPA-объектом
  2. @ Column - сопоставить свойство со столбцом БД
  3. @ Id - сообщить, что свойство java - это первичный ключ
  4. @ EmbeddedId - используется для составных первичных ключей
  5. @ Transient - это свойство не должно сохраняться
  6. @ Версия - используется для управления оптимистической блокировкой
  7. @ NamedQuery - используется для объявления собственных SQL
  8. @ OneToMany - Отношение один ко многим
  9. @ ManyToOne - Отношение много к одному

Я включил только самые важные из них. Подробную информацию обо всех аннотациях JPA можно найти по следующим ссылкам.

http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-annotations.html

http://www.hiberbook.com/

3 голосов
/ 04 декабря 2009

Junit 4 предоставляет очень полезные аннотации. Вот учебник , иллюстрирующий использование аннотаций для определения тестов.

, например

@Test(expected= IndexOutOfBoundsException.class) public void empty() { 
    new ArrayList<Object>().get(0); 
}

Как указал Дэн ниже, TestNG сделал это изначально.

1 голос
/ 23 августа 2018
@FunctionalInterface

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

1 голос
/ 04 декабря 2009

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

... myMethod (@NotNull String a, @NotNullOrEmpty String b) {

     if ( !validate() ){
         raiseException ..
     }

}

Я застрял в точке автоматического получения значений параметров. У Java-отражения его нет. никогда не понимал разглагольствования нескольких людей на Java, пока не наткнулся на это ограничение.

...