Guice поддерживается в GWT с использованием GIN . Для Spring-DI с GWT, проверьте GWT Toolbox или Rocket GWT .
Я считаю, что GIN - более естественный выбор для GWT. Не потому, что это также сделано Google, а потому, что использование XML для конфигурации GWT не имеет абсолютно никакого смысла. Все статически компилируется в JavaScript, поэтому нет необходимости во внешней настройке. Держите ваши инструменты рефакторинга счастливыми; пойти на Джин.
Чтобы ответить на ваш другой вопрос, вы не найдете много фреймворков SE, которые работают на GWT. Прежде всего, он не поддерживает рефлексию или манипулирование байт-кодом (все это JavaScript), что сразу исключает множество фреймворков. Log4j, с другой стороны, не имеет смысла, потому что на стороне клиента нет файловой системы, но есть библиотеки , которые делают вещи по-другому.
Библиотеки Spring для GWT, упомянутые выше, в основном переписаны для Spring для GWT. Они не делятся кодом с Spring просто потому, что не могут. Эти фреймворки работают путем генерации кода («фабрики»), который связывает ваши компоненты, как если бы вы делали DI вручную.
Так же работает GIN, он генерирует фабрики Java для ваших классов, а GWT компилирует его в оптимизированный JavaScript (что означает незначительное снижение производительности). GIN использует Guice за кулисами для проверки конфигурации во время компиляции и для проверки модулей.