2010-06-07 2 views
4

Я читал статью в Википедии о серверах приложений Java EE здесь:Каковы отношения между Spring и javax.enterprise.inject?

http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition#Java_EE_5_certified

Он говорит, что 2 API, что Java App Services реализуют являются:

javax.enterprise.inject 
javax.enterprise.context 

Эти и относятся к контексту приложения и инъекция зависимостей JSR-299. Раньше я никогда не слышал об этих API. Использует ли Spring эти API? Было бы важно, если бы они это сделали?

ответ

3
  • JSR-330 определяет набор аннотаций (javax.inject), которые должны быть использованы в различных механизмов впрыска зависимостей. Спецификацию Вела Род Джонсон (с весны), и Боб Ли из (Google Guice)
  • (частично) из-за спецификации проводной, весной и поддержка Guice этого набора аннотаций

Это часть JavaEE, который используется весной.

Этот же набор используется JSR-299, который ведет Gavin King от JBoss. Тем не менее, JSR-299 (также известный как CDI) использует javax.enterprise.inejct/context и представляет собой совершенно новую схему вложения зависимостей. Он основан на идеях весны, уха и шва, но формально определен как JSR и предназначен для покрытия многих угловых случаев, а также плавной интеграции с другими частями JavaEE.

JSR-299 определяет как API, так и SPI, чтобы можно было разработать конкретные реализации. Текущие реализации: JBoss Weld, Apache OpenWebBeans и Resin CanDI.

Итак, чтобы ответить на ваш вопрос - прямой связи между javax.enterprise.inject и весной нет.

+0

Так что JSR-299 API (например, JPA или JTA) или фактическая реализация? Если API, знаете ли вы, что Spring в конце концов его осуществит? – HDave

+0

- это спецификация - как API, так и SPI. Нет, весна не выполнит его, на мой взгляд. См. Мое обновление. – Bozho

2

Spring поддерживает JSR-330's @Inject - его можно использовать вместо @Autowired (за исключением того, что у него нет свойства required).

Вам также необходимо иметь банку JSR 330 на пути к классам.

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-autowired-annotation

+0

Более подробную информацию об использовании поддержки JSR-330 весной можно найти здесь: http://stackoverflow.com/questions/3055724/can-spring-understand-inject-replacing-weld-as-a-jsr-299- реализация/3055829 # 3055829 – Ophidian

Смежные вопросы