Пользовательская аннотация Spring - как сделать ее частью библиотеки? - PullRequest
1 голос
/ 06 ноября 2011

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

Яоднако, не удалось заставить Spring действовать с аннотацией.Моя библиотека находится в classpath моего веб-приложения, и я попытался отсканировать его в applicationContext.xml:

<context:component-scan base-package="my.annotation.pkg" />

Поле, помеченное моей пользовательской аннотацией, по-прежнему равно нулю.

В идеале я 'Мне бы хотелось, чтобы это работало с минимумом суеты и конфигурации, но пока у меня не было никакого успеха.

Какая часть проводки Spring мне не хватает, чтобы моя пользовательская аннотация распознавалась, когда она была частьювнешняя библиотека?

Обновление

Вот как я "решил" это ... просто пришлось прочитать чуть более внимательно.В каждом файле контекста (т.е. applicationContext.xml, dispatch-servlet.xml) я добавил строку:

<bean class="my.annotation.CustomInjector" />

... где мой CustomInjector implements BeanPostProcessor.Я основал это на коде в этом посте: Реализация стиля шва @Logger инъекция с помощью Spring .

Автор говорит, что мне нужно было делать именно то, что я делал, так плохо для меня, потому что я нечитать внимательно.Однако зачем добавлять это определение бина?Может быть, аннотации Spring настроены аналогичным образом под капотом - я просто не понимаю, почему наличия файла jar на пути к классам недостаточно.

1 Ответ

1 голос
/ 06 ноября 2011

Помечена ли ваша пользовательская аннотация аннотацией @ Component ?Из справочного руководства Spring :

По умолчанию классы аннотируются @Component, @Repository, @Service, @Controller или пользовательской аннотацией, которая сама аннотируется @Component.являются единственными обнаруженными подходящими компонентами.

Кроме того, вы можете добавить пользовательский include-filter к элементу component-scan в конфигурации XML.

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