gae - можно ли разделить приложение - PullRequest
0 голосов
/ 26 июня 2011

Можно ли таким образом спроектировать приложение на gae? - админ часть - gwt, guice - пользовательская часть - guice, html, js

Они должны быть независимыми по соображениям производительности. Как я знаю, приложение можно запускать при каждом запросе, поэтому нет причин каждый раз запускать и загружать административную часть в память. Как я прочитал, невозможно разделить хранилище данных между двумя приложениями. Может быть, Guice поддерживает такой сценарий?

Редактировать

извините, я попробую еще раз

  1. Я обнаружил, что приложение может быть перезапущено для каждого http-запроса. Даже для одного и того же пользователя и того же сеанса
  2. Запуск приложения занимает несколько драгоценных секунд
  3. Часть приложения используется редко, она будет написана на gwt, будет довольно тяжелой и будет использоваться только администраторами. Я думал, что смогу сэкономить здесь некоторое время - на инъекциях, инициализации классов и т. Д. Но, возможно, я ошибаюсь, используя все ресурсы создаются по требованию и нет проблем. Я просто еще не знаю хитрости и gwt

1 Ответ

0 голосов
/ 06 марта 2012

Я думаю, вы говорите о ленивом создании бобов. Это так по умолчанию (если вы не используете привязку toInstance):

package com.sopovs.moradanen;

import javax.inject.Singleton;

import com.google.inject.Guice;
import com.google.inject.Injector;

public class Main {
public static void main(String[] args) {
    System.out.println("Creating injector");
    Injector injector = Guice.createInjector();
    System.out.println("Injector created");
    System.out.println("Getting instance of Foo");
    injector.getInstance(Foo.class);
    System.out.println("Got instance of Foo");

    System.out.println("Getting instance of Bar");
    injector.getInstance(Bar.class);
    System.out.println("Got instance of Bar");

    System.out.println("Getting another instance of Foo");
    injector.getInstance(Foo.class);
    System.out.println("Got another instance of Foor");
}

@Singleton
public static class Foo {

    public Foo() {
        System.out.println("Foo Created");
    }
}

@Singleton
public static class Bar {

    public Bar() {
        System.out.println("Bar Created");
    }
}
}

Вывод:

Creating injector
Injector created
Getting instance of Foo
Foo Created
Got instance of Foo
Getting instance of Bar
Bar Created
Got instance of Bar
Getting another instance of Foo
Got another instance of Foor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...