gpt4 book ai didi

用 @Creatable 注释的 Java 类在注入(inject)其他插件类时缺少属性

转载 作者:行者123 更新时间:2023-11-30 02:08:42 24 4
gpt4 key购买 nike

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

应用程序

应用程序功能

应用程序产品

app.releng

然后是2个插件项目

应用程序服务

应用程序.ui

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

@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 类上注入(inject)相同的身份验证服务时,检索到的 token 为空。我需要在零件类上使用它,因为我将调用另一个 REST 服务来显示要显示的项目列表。

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

最佳答案

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

为此,请指定 @Singleton 注释:

@Creatable
@Singleton
public class AuthenticationService {

关于用 @Creatable 注释的 Java 类在注入(inject)其他插件类时缺少属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50715626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com