Аннотации также связывают код с каркасом, как весна? - PullRequest
1 голос
/ 05 октября 2011

Расширение интерфейсов на основе Spring не рекомендуется, так как оно без необходимости связывает код с Spring. То же самое относится и к аннотациям? Нам нужно импортировать их в исходный код перед их использованием.

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Я возьму противоположную точку зрения - конечно, использование аннотации, специфичной для Spring, связывает класс с Spring.Я утверждаю, что само собой разумеется, что импорт и использование аннотаций Spring связывает код с Spring (хотя вы можете тривиально переопределить эти аннотации для среды, отличной от Spring).Для меня ключевым является то, как глубоко это связано с Spring.

Проще проверять и обрабатывать аннотации, чем реструктурировать иерархию классов или дублировать функциональность неинтерфейс маркера.Предполагая, что вы хотели оставить аннотации внутри и могли дублировать логику аннотаций, это будет легче сделать (IMO), чем воссоздать какую-либо иерархию классов / интерфейсов, реализованную схожей функциональностью.это слово «излишне».Мне еще предстоит создать приложение Spring, и мне нужны эти классы вне среды Spring.Когда у меня есть (как правило, для открытых API), это было на уровне интерфейса.Обратите внимание, однако, что я знал с самого начала, что это воздействие будет существовать, и я планировал соответственно.

2 голосов
/ 05 октября 2011

Большинство будет утверждать, что это не так.Несмотря на то, что вы импортировали эти аннотации, необходимые для обеспечения того, что Spring обрабатывает запрос или переносит транзакции, вы не расширяете или не реализуете определенный класс или интерфейс.

Подумайте об этом так, когда вы аннотировали этокласс вы говорите Spring делать разные вещи в зависимости от вашей конфигурации.Уберите эти аннотации, и у вас есть POJO, в котором есть только несколько методов.Это полностью допустимый объект без этих аннотаций, он может не выполнять то, что вы хотите (т. Е. Обрабатывать запросы), но код все еще выполняет ту же логику, что и с аннотациями - вы просто сейчас ответственны за его соответствующий вызов.

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