如何在引导后注入Session / User对象?

时间:2016-06-19 11:32:09

标签: java gwt gwtp gwt-platform

有些示例会将不同类型的对象注入演示者,但我无法找到解释如何完成此操作。

Bootstrap-Code示例中,他们正在注射例如一个SecurityDelegate个对象。

同样在Gatekeeper示例中,我看到正在注入的内容,例如MyGatekeeper,但这是怎么做到的?

我想要的是首先检查用户是否已登录,然后创建一个CurrentSession对象或类似的东西。但是我怎样才能传递/注入这个对象?

目前我正在初始化一个单身对象CurrentUser,这是一种丑陋的imho。我想让GWTP支持运行,但是如何运行?

以注入网守的CurrentSession为例:

@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
    private final CurrentSession currentSession;

    @Inject
    LoggedInGatekeeper(CurrentSession currentSession) {
        this.currentSession = currentSession;
    }

    @Override
    public boolean canReveal() {
        return currentSession.isLoggedIn();
    }
}

如何在这里注射CurrentSession

1 个答案:

答案 0 :(得分:0)

这是一个解释如何使用Gatekeeper的教程:http://dev.arcbees.com/gwtp/tutorials/tutorial-part2.html

在你的杜松子酒模块中将CurrentSession的类(教程中的CurrentUser)声明为Singleton:

public class YourGinModule extends AbstractGinModule {

    @Override
    protected void configure() {
        bind( CurrentSession.class ).in ( Singleton.class );
        ...
    }

}

在这里,您可以找到在客户端使用GWTP Gatekeeper和在服务器端使用Spring Security的另一个示例:https://github.com/imrabti/gwtp-spring-security