1

我有一个 e4 应用程序项目,其中包含以下项目

应用程序

应用程序功能

应用程序产品

应用程序.releng

然后是2个插件项目

应用程序服务

应用程序.ui

我在处理程序上创建了一个简单的登录对话框页面,我在这个对话框上注入了服务,然后它成功地在服务器上进行了身份验证。

@Creatable
public class AuthenticationService {

    @Inject
    public AuthenticationService() {

    }

    private Token token;

    public Token getToken() {
        return token;
    }

    private void setToken(Token token) {
        this.token = token;
    }

    public Token authenticate(String username, String password) {


    //authenticate and set token here
    }
}

问题是当我在 Part 类上注入相同的身份验证服务时,检索到的令牌为空。我需要在 Part 类上使用它,因为我将调用另一个 REST 服务来显示要显示的项目列表。

Dialog 和 Part 类位于 app.ui 插件项目中,而身份验证服务位于 app.service 插件项目中

4

1 回答 1

2

如果您只是使用@Creatable该类的新实例,则每次注入时都会创建它。在这里,您希望只有一个服务类实例,以便每次都获得相同的实例。

为此,请指定@Singleton注释:

@Creatable
@Singleton
public class AuthenticationService {
于 2018-06-06T08:40:18.167 回答