Встроенный веб-контейнер, напрямую поддерживающий JSR-330 инъекцию?

Мы решили, что весь наш модульный код должен использовать внедрение зависимостей JSR-330, и мы использовали Guice 2.1SVN или Java EE 6 CDI для фактического внедрения в нескольких проектах, и это очень хорошо зарекомендовало себя.

У нас есть еще один сценарий, в котором мне нужно найти решение, а именно, что у нас есть встроенный веб-контейнер, работающий на Java 5, где я хотел бы иметь возможность развертывать WAR-файлы с помощью инъекции JSR-330, как в Java EE 6.

Я обнаружил, что GlassFish и Resin 4 могут это сделать, но веб-профиль Java EE 6 слишком велик для этой цели, поскольку мы запускаем довольно маленькие приложения, каждое на своем собственном встроенном сервере.

Следовательно, возникает вопрос, существует ли легко доступный веб-контейнер с встроенной поддержкой JSR-330, чтобы мы могли развернуть в нем наш существующий код (скомпилированный для Java 5), ​​не имея полного Weld или Guice- сервлет, заключенный в WAR. Совершенно нормально иметь полный комплект конфигурации, размещенный в основном коде, вызывающем веб-контейнер, но я не хочу, чтобы в фактическом развертывании веб-приложения были какие-либо банки guice / Spring / weld.


person Thorbjørn Ravn Andersen    schedule 03.12.2010    source источник
comment
это очень странное требование :)   -  person Bozho    schedule 03.12.2010
comment
Божо, небольшой веб-контейнер, который может делать DI?   -  person Thorbjørn Ravn Andersen    schedule 03.12.2010


Ответы (1)


Рассматривали ли вы возможность использования Jetty 6 или 7 Embedded? Он с открытым исходным кодом и поддерживается Eclipse, поэтому будет иметь долгий срок поддержки. Я все время использую его с Spring для DI и считаю его чрезвычайно легким. Идеально подходит для быстрой итеративной разработки.

В вашем вопросе в фактическом приложении не указано, что в приложении нет файлов Guice, Spring или Weld. Jetty позволяет настраивать различные пути к классам, поэтому вы можете включать необходимые реализации поддержки JSR-330 как требуется.

person Gary Rowe    schedule 04.12.2010
comment
Текущая реализация - это встроенная Jetty 6, которая работает очень хорошо и мне очень нравится. - person Thorbjørn Ravn Andersen; 04.12.2010