Использование CDI в JSF, Weld или Solder
Хм, я начинаю с jsf webapplication, буду использовать CDI, но я немного запутался между Weld & Solder, или это то, что Solder использует Weld под капотом.
Также Weld раньше назывался WebBeans?
Как и в случае с Apache MyFaces, ясно, что реализация CDI - это CODI.
1 ответ
JBoss Weld является реализацией (эталонной) спецификации CDI.
До того, как окончательная версия спецификации CDI называлась WebBeans, это могло привести к некоторой путанице.
Apache CODI не является реализацией CDI. Это набор расширений CDI, которые облегчают использование CDI в нескольких сценариях.
То же самое для припоя и шва3. Solder - это набор низкоуровневых расширений, а Seam3 - это набор библиотек, который использует Solder для предоставления расширений более высокого уровня. Существуют предложения о включении некоторых функций Solder в будущую версию спецификации CDI.
CODI, Solder и Seam3 нуждаются в реализации CDI. Weld является эталонным, а другие ценные реализации - OpenWebBeans (от Apache) и CanDI (от Caucho Resin).
Хотя реализации CDI должны быть взаимозаменяемыми, с практической точки зрения вы должны выбрать, хотите ли вы больше CODI или Seam3, а затем перейти к стеку CODI/OpenWebBeans или стеку Seam3/Solder/Weld.
Обновление: все быстро движется по этой теме. Теперь рекомендуется прочитать это объявление Seam.Next, так как Seam, Solder и CODI в конечном итоге объединятся в уникальный проект под названием DeltaSpike под эгидой Apache.