Я создал пользовательскую аннотацию (весной 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 на пути к классам недостаточно.