В чем связь между Spring и Javax.Enterprise.inject?
-
24-10-2019 - |
Вопрос
Я читал статью в Википедии о серверах приложений Java EE:
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. Реализует ли весна эти API? Будет ли это иметь значение для кого -либо, если бы они это сделали?
Решение
- JSR-330 определяет набор аннотаций (
javax.inject
), которые должны использоваться в различных рамках впрыска в зависимости. Спецификация возглавляла Род Джонсон (с весны) и Боб Ли из (Google Guice) - (Частично) из -за спецификации, пружина и Guice поддерживают этот набор аннотаций
Это часть Javaee, которая используется весной.
Тот же набор используется JSR-299, который возглавляет Гэвин Кинг из JBoss. Тем не менее, JSR-299 (также известный как CDI) использует javax.enterprise.inejct/context
и является совершенно новой структурой введения зависимостей. Он основан на идеях весны, Guice и Sew, но официально указан как JSR и направлен на покрытие многих угловых случаев, а также к плавной интеграции с другими частями Javaee.
JSR-299 определяет как API, так и SPI, чтобы можно было разработать конкретные реализации. Текущие реализации Jboss Weld, Apache OpenWebbeans а также Смола канди.
Итак, чтобы ответить на ваш вопрос - нет прямой связи между javax.enterprise.inject
и весна.
Другие советы
Весна поддерживает JSR -330 @Inject - ее можно использовать вместо @Autowired (за исключением того, что у него нет required
имущество).
Вам также необходимо иметь JSR 330 JAR на классе.