Используйте GUICE рядом с GIN - PullRequest
1 голос
/ 20 февраля 2012

Я успешно использую GIN на моем проекте GWT. Теперь моей RPC-службе понадобятся данные из другого уровня (Business Logic -> Data Access), в прежние времена я делал одноэтапные сервисы с необходимыми методами. Что-то вроде MyGwtServiceImpl.getData () -> MyServerSideService.getData () -> MyDaoGetDataFromDB ()

Но в настоящее время синглтон не очень ценится, и я хотел бы для целей тестирования использовать метод впрыска.

Я знаю все, что мне нужно знать, это установить GUICE для серверной стороны, но я не совсем уверен, где нужно делать создание инжектора. Обычно это делается основным способом, но здесь я использую GWT.

Будет ли конфликт между GIN и GUICE lib?

Где я должен поставить инжектор? в onModuleLoad? Я не уверен, так как моя заявка будет разделена на несколько.

Спасибо за помощь!


Резюме:

  • Следуйте инструкциям Томаса (Ответ)
  • Но чтобы инъекция работала, не забудьте заменить (фактически удалить) в web.xml:

    <servlet>
        <servlet-name>MyService</servlet-name>
        <servlet-class>com.myapp.MyServiceImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyService</servlet-name>
        <url-pattern>/com.myapp/MyService</url-pattern>
    </servlet-mapping>
    
  • By в модуле Guice:

     serve("/com.myapp/MyService").with(MyServiceImpl.class);
    

1 Ответ

3 голосов
/ 20 февраля 2012

Вы хотите создать свой инжектор в ServletContextListener.Посмотрите на http://code.google.com/p/google-guice/wiki/ServletModule

Нет абсолютно никакого конфликта между GIN (Guice для GWT, на стороне клиента) и Guice (на стороне сервера).

...