Sharing knowledge

by Oleg Atamanenko

Пишем @Enable*-аннотацию для Spring

Начиная с версии 3.1 Spring поддерживает декларативное включение необходимой функциональности через, так называемые, @Enable* аннотации. Пример таких аннотаций: org.springframework.web.servlet.config.annotation.EnableWebMvc, org.springframework.cache.annotation.EnableCaching, org.springframework.scheduling.annotation.EnableAsync и другие. В продолжение темы прошлого поста, я хочу показать, как можно добавить собственную @Enable аннотацию. Для автоматического создания клиента для REST-ресурса нам необходима следующая информация:

@Autowired JAX-RS Client API

Продолжая разговор о JAX RS Client API - предположим, что мы уже используем JAX-RS клиент У нас есть класс, который умеет создавать прокси для любого REST-интерфейса в проекте. Теперь мы хотим сделать так, чтобы эти интерфейсы можно было автоматически создавать в контексте Spring и связывать с другими бинами.

JAX-RS Client API

JAX-RS - набор Java API для работы с REST сервисами. Существует несколько реализаций, о которых я уже писал раньше. Предположим, что проект А выставляет наружу REST API, который мы хотим использовать в проекте Б. Очевидно, что сразу возникает вопрос - можно ли переиспользовать классы модели и интерфейс в другом проекте.

@Autowiring EJBs with Spring

Предположим, что у нас есть проект на Spring, в котором необходимо использовать внешние EJB. Для получения бинов необходимо создавать InitialContext и делать lookup() нужных ejb. Но эту задачу можно автоматизировать и пользоваться @Autowired, то есть код будет выглядеть вот так: