Будет ли Spring поддерживать CDI?

Spring был хорошей средой для DI и АОП для разработчиков Java.

Теперь появилась стандартная спецификация для DI и AOP, которая называется CDI.

Любой хороший продукт больше не может оставаться хорошим без поддержки соответствующих стандартов. (Например, Hibernate поддерживает спецификацию JPA)

Мой вопрос: будет ли Spring поддерживать стандартную спецификацию (CDI) в своих будущих выпусках?


person siva636    schedule 30.08.2011    source источник
comment
это актуально? cdisource.org/site /2011/06/spring-and-java-ee-6-cdi-get-it-done — может быть полезно   -  person TeaCupApp    schedule 30.08.2011
comment
@kiro Действительно полезная ссылка, и эта статья посвящена интеграции Spring / CDI, но не обсуждает поддержку Spring (будущую) для CDI. Мне нравится обсуждать, будет ли Spring поддерживать CDI, если нет, то каковы возможные (технические и другие) причины.   -  person siva636    schedule 30.08.2011
comment
Spring уже поддерживает аннотации CDI javax.inject, но я не уверен насчет АОП. Кроме того, CDI выходит далеко за рамки DI (например, интеграция фасетов). Не могли бы Вы уточнить?   -  person skaffman    schedule 30.08.2011
comment
@skaffman Просто игнорируйте вещи, выходящие за рамки DI и AOP (как в Spring, так и в CDI), при обсуждении этой темы.   -  person siva636    schedule 30.08.2011


Ответы (1)


Несмотря на то, что Spring является открытым исходным кодом и используется и поддерживается большим сообществом, его будущая разработка контролируется одной компанией (spring source/vmware). Таким образом, его решения по своей сути непубличны и, безусловно, зависят от большого количества факторов, таких как текущие требования сообщества, но, безусловно, также финансовые и политические аспекты (в конце концов, все дело в деньгах).

Поэтому важно сделать вывод, что spring / spring source не привязан к какому-либо официальному процессу (например, JCP), и нельзя предвидеть, какое решение Spring Source примет решение в будущем. С другой стороны, прошлые действия приводят к предположению, что источник spring не кашляет - особенно заинтересован в реализации полного стека CDI (JSR 299). Помните, что, несмотря на то, что spring source изначально присоединился к JCP для JSR 299 (вместе с sun, redhat, google, ...), все они ужасно поссорились по этому поводу, что привело к форку JSR 330, который является не чем иным, как подмножеством из JSR 299. Плюс: реализация (с сохранением состояния) модели внедрения зависимостей CDI в любой будущей версии Spring будет реальной кучкой работы.

Итак, чтобы сделать длинный ответ коротким: даже если мы не знаем о будущем, можно с уверенностью предположить, что исходный код spring/spring никогда не будет поддерживать JSR 299 в целом, но будет придерживаться своей реализации JSR 330.

person jan groth    schedule 02.09.2011
comment
Да, разделение модели инъекций на две действительно кажется политизированным вопросом, как предлагает Ян Грот выше. Я даже вижу в бюллетене окончательного утверждения (jcp.org/en/jsr/results? id=5017), IBM проголосовала против этого шага и призывает к единой модели. - person siva636; 05.09.2011
comment
Причина разделения, вероятно, была связана с соображениями совместимости. Модель Spring DI является своего рода устаревшей, и даже сейчас, в 2017 году, они не поддерживают все возможности CDI. - person ; 25.05.2017