【发布时间】:2015-07-01 19:58:34
【问题描述】:
Android 允许我们扩展 Application,这是存储我们的单例的好地方,因此它们可以轻松地在应用程序的不同页面(活动)中重复使用。
Google App-Engine 相当于什么?
我正在使用 dagger,我不想为每个端点创建一个新的对象图。
【问题讨论】:
标签: android google-app-engine google-cloud-platform dagger-2
Android 允许我们扩展 Application,这是存储我们的单例的好地方,因此它们可以轻松地在应用程序的不同页面(活动)中重复使用。
Google App-Engine 相当于什么?
我正在使用 dagger,我不想为每个端点创建一个新的对象图。
【问题讨论】:
标签: android google-app-engine google-cloud-platform dagger-2
一种选择(尽管我不确定它是最好的)就是自行注入您的 Cloud Endpoints 类(通过静态字段注入)。
假设您正在 ServletContextListener 中初始化对象图,因此您可以在调用端点方法之前在那里这样做。
Dagger 1.x 支持模块注解上的 staticInjections(为您执行此操作),但这显然在 2.x 中不再支持。
【讨论】:
ServletContextListener 中创建了我的 Singleton component。现在我在我的端点类中。如何获得对 component 对象的引用?在 Android 中,我会从我的 activity 中调用 getApplication()。端点不扩展类,所以我看不到任何可以使用的 getServletContext() 方法。
ServletContextListener 中将component 设为静态单例