Известные пользователи JSR-269 («API обработки аннотаций с подключаемыми модулями») помимо JPA 2.0? - PullRequest
8 голосов
/ 06 ноября 2011

JSR 269 - «API-интерфейс обработки сменных аннотаций» - выпущен в 2006 году. С тех пор единственным известным использованием этого API было создание метамодели JPA 2.0 ( JSR 317 , 2009).

Какие другие стандартизированные или, по крайней мере, хорошо известные фреймворки используют этот API?

Ответы [ 8 ]

5 голосов
/ 09 июля 2014

Dagger , по их собственным словам, - быстрый инжектор зависимостей для Android и Java.Dagger включает процессор аннотаций, который проверяет модули и инъекции.Этот процессор строг и вызовет ошибку компилятора, если какие-либо привязки будут недопустимыми или неполными.

5 голосов
/ 08 ноября 2011

Проект Ломбок"хорошо известен", я полагаю.Хотя это не похоже на реализацию JSR-269, см. этот поток .

3 голосов
/ 19 июля 2012

GWT 2.4 представил платформу RequestFactory и предоставил процессор аннотаций JSR-269 для проверки проектов, использующих RequestFactory, см. эту страницу .

2 голосов
/ 26 сентября 2016

MapStruct - это генератор кода на основе JSR 269 для типобезопасных отображений bean-компонентов.

1 голос
/ 23 сентября 2015

Библиотека HexaBinding использует JSR 269 для автоматической генерации подклассов POJO, которые интегрируются в систему привязки, чтобы избавить разработчика от написания слишком большого количества кода котельной пластины.

Вы можете найти егоздесь: https://github.com/ltearno/hexa.tools/blob/master/hexa.binding/README.md

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

1 голос
/ 30 августа 2012

Blaze CBAV (проверка аннотаций на основе ограничений) все еще находится в разработке, но уже способна к некоторой необычной проверке времени компиляции.По сути, вы можете использовать эту библиотеку для добавления метаинформации в ваши аннотации для генерации ошибок компилятора на основе ваших собственных условий.

Предопределены некоторые полезные ограничения по умолчанию, но вы также можете определить свои собственные ограничения, внедрив валидатор исвяжите это с помощью аннотации ограничения на собственное ограничение.Реализация валидаторов должна присутствовать в скомпилированной форме в вашем classpath, когда вы хотите использовать свое собственное ограничение, поэтому вы можете захотеть упаковать его отдельно.Попробуйте и изучите возможности;)

Например, вы можете убедиться, что данное значение аннотации встречается в классе только один раз:

public @interface MyAnnotation{
  @UniqueValueConstraint(scope=ConstraintScope.CLASS, errorMessage="This value must be unique within class level!")
  String value();
}

public class MyClass{
  @MyAnnotation("test")
  void test1(){}
  @MyAnnotation("test")
  void test2(){} // Compiler error with your message ;)
}

Вы можете найтипроект на Github: https://github.com/Blazebit/blaze-cbav

0 голосов
/ 31 марта 2018

Selma mapper также основан на JSR 269 и является одним из лучших доступных решений для сопоставления бобов, которое простое в использовании и обладает большой гибкостью.

0 голосов
/ 12 декабря 2014

Проект Google Auto использует JSR-269 для генерации неизменяемых типов значений, среди прочего. Они также предоставляют библиотеку, которая может упростить написание ваших собственных процессоров аннотаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...