作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在带有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
更改为以下内容,您就可以在应用程序的其他位置引用它: @Autowire
d 属性。
@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/
我想在带有Spring Boot的微服务环境中实现FusionAuth,所以我想为java制作FusionAuth客户端的单例。但我在静态上下文中使用变量 apiKey, baseUrl 时遇到错误。
我是一名优秀的程序员,十分优秀!