java - FusionAuthClient 单例

标签 java spring fusionauth

我想在带有Spring Boot的微服务环境中实现FusionAuth,所以我想为java制作FusionAuth客户端的单例。但我在静态上下文中使用变量 apiKey, baseUrl 时遇到错误。

@Configuration
public class FusionAuthClientConfig {

    private static FusionAuthClient INSTANCE = null;

    @Value("${fusionAuth.apiKey}")
    private String apiKey;

    @Value("${fusionAuth.baseUrl}")
    private String baseUrl;

    public static FusionAuthClient getInstance() {
        if(INSTANCE == null)
            INSTANCE = new FusionAuthClient(apiKey, baseUrl);

        return INSTANCE;
    }
}

无论如何,单例类的作用域被使用了吗?我的意思是对于并发环境和性能,我应该为每个融合身份验证请求使用客户端吗?

最佳答案

您的private static FusionAuthClient INSTANCE = null 是不必要的。默认情况下,bean 的作用域为单例。 @参见:Bean Scopes

由于您使用的是@Configuration,因此您只需将FusionAuthClientConfig更改为以下内容,您就可以在应用程序的其他位置引用它: @Autowired 属性。

@Configuration
public class FusionAuthClientConfig {

    @Value("${fusionAuth.apiKey}")
    private String apiKey;

    @Value("${fusionAuth.baseUrl}")
    private String baseUrl;

    @Bean
    public FusionAuthClient fusionAuthClient() {
        return new FusionAuthClient(apiKey, baseUrl);
    }
}

现在您的 fusionAuthClient bean 可以在其他地方引用,如下所示:

@Service
//or @Component etc
public class MyService {
    private final FusionAuthClient fusionAuthClient;

    public MyService(FusionAuthClient fusionAuthClient) {
        this.fusionAuthClient = fusionAuthClient;
    }

    public void doTheThing() {
        // use this.fusionAuthClient
    }
}

关于java - FusionAuthClient 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59865965/

相关文章:

java - 如果程序崩溃,main方法可以返回错误代码吗?

java - Spring MVC 3.2.8 : Create a new FileSystemXmlApplicationContext and loading the definitions from the given XML files

spring - 使用 Spring security 配置 Spring MVC 应用程序的好习惯是什么?

random - FusionAuth 是否对 Salted PBKDF2 HMAC SHA-256 中的每个密码使用随机盐?

java - 有没有办法可以停止程序并等待用户单击按钮

java - 如何移动 xmlns :xs and xmlns:xsi to Root Element with JAXB?

java - NPE 将数据保存到 neo4j 时

java - 未在 FusionAuth 中使用授权代码授予请求响应访问 token 调用时获取刷新 token

Java继承...我认为。也许不会