Аннотации - JAR-зависимости - PullRequest
3 голосов
/ 27 августа 2009

Хотя я фанат использования аннотаций, у меня есть опасения по поводу зависимостей, которые они создают на сторонних банках.

Для целей этого вопроса я имею в виду аннотации Hibernate или JPA для классов модели предметной области.

На самом деле, я хочу, чтобы моя модель предметной области состояла из простых POJO, без каких-либо зависимостей от структуры персистентности. Если я разверну свои классы домена в одном jar-файле, я не пойму, почему приложение, использующее этот jar-файл, должно импортировать и какие-либо зависимости, связанные с используемыми аннотациями.

Возможно ли, что баночки аннотаций должны зависеть только от времени компиляции?

Спасибо

Andrew

1 Ответ

1 голос
/ 27 августа 2009

Это действительно зависит от того, чего вы пытаетесь достичь. Избегать зависимости ради избежания зависимости не имеет особого смысла. В этом случае, вы все еще не собираетесь сохранять свои сущности? Таким образом, зависимость все еще будет там.

Теперь, если мы говорим о развертывании API по отдельности (а фактическое сохранение происходит в каком-то другом уровне, развернутом отдельно), у вас есть несколько вариантов:

  1. Вы можете определить свой API через интерфейсы (что неплохо для начала, аннотации или нет - упрощает разделение слоев / тестирование / что у вас есть) и комментировать только реальные реализации. Разверните свой API как отдельный jar, и у вас нет зависимостей.

  2. Если вы определяете свой API как конкретную сущность, лучшим вариантом для устранения зависимостей является использование сопоставлений XML вместо аннотаций. Посмотрите на этот вопрос для деталей. Я бы не стал этого делать, если честно. JPA является частью JavaEE; на самом деле это не зависимость, о которой стоит беспокоиться.

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