Перемещение Spring Inpendency Введенный код на Android - PullRequest
2 голосов
/ 09 марта 2011

Алоха -

Я переносу код из существующего веб-приложения в приложение Android. Существующее веб-приложение широко использует Spring для внедрения зависимостей.

Я бы хотел повторно использовать внедрение зависимостей Spring, если смогу, но я не вижу способа его инициализации, как вы бы сделали в веб-приложении:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

Google не дает особой помощи по этому вопросу, кроме использования Guice. Я бы предпочел не делать этого, так как веб-приложение все еще находится в стадии разработки, поэтому, если бы я использовал Guice для зависимостей, мне бы постоянно приходилось синхронизироваться между зависимостями Spring и Guice.

Есть ли способ использовать Spring for DI на Android в режиме "подключи и работай", или я должен смотреть на переписывание всего этого по-другому?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

Не пытайтесь использовать инъекцию зависимости весны в вашем приложении для Android.Android и весна не смешиваются ни в каком виде, ни в форме, ни в форме.Вместо этого используйте шаблон проектирования фабрики для создания объектов.

1 голос
/ 09 марта 2011

Вы смотрели на развертывание своего ApplicationContext, возможно, расширение FileSystemXmlApplicationContext и переопределение getResourceByPath(String path) для извлечения ваших контекстных файлов из ресурсов / папки?

Если вы решите пойти по маршруту Guice, RoboGuice - это симпатичная маленькая библиотека: http://code.google.com/p/roboguice/

0 голосов
/ 19 января 2014

Пожалуйста, используйте инъекцию зависимости Spring в вашем приложении для Android!: -)

Однако вы не сможете использовать исходный Spring Framework, так как для него требуется пакет java.beans , которого нет в Android.

Если ваша существующая конфигурация Spring не слишком необычная, вы будете довольны моим портом Spring Framework под названием RoboSpring .Из его описания:

RoboSpring - это (реальный) порт Spring Framework для платформы Android.Кроме того, он предлагает предварительную поддержку функций, представленных RoboGuice, таких как внедрение ссылок View в Activity и многое другое.RoboSpring основан на версии 3.1.0 RELEASE компонентов Spring core , bean , context и aop .Он предлагает следующие функциональные возможности:

  • Настройка компонентов приложения с помощью файла конфигурации Spring (XML)
  • Автоматическое связывание компонентов Android с компонентами из контекста приложения Spring.
  • Вставьте контекст приложения Android в Spring Beans.
  • Добавьте представления в Activity.
  • … и более

См. Здесь: https://github.com/dthommes/RoboSpring

RoboSpring - Inversion of Control for Android

...