-1

是否可以以这种方式在 gae 上设计应用程序 - 管理部分 - gwt,guice - 用户部分 - guice,html,js

出于性能原因,它们应该是独立的。据我所知,该应用程序可以在每个请求上启动,因此没有理由每次都启动并将管理部分加载到内存中。正如我所读到的,无法在 2 个应用程序之间共享数据存储。也许 guice 支持这种情况?

编辑

对不起,我会再试一次

  1. 我发现可以为每个http请求重新启动应用程序。即使对于同一个用户和同一个会话
  2. 启动应用程序需要几秒钟的宝贵时间
  3. 该应用程序的一部分很少使用,它会用 gwt 编写,会相当繁重并且仅供管理员使用资源是按需创建的,没有问题。我只是还不知道 guice 和 gwt
4

1 回答 1

0

我认为您在谈论懒惰地创建bean。默认情况下是这样(除非您使用 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
于 2012-03-06T13:47:04.870 回答