gpt4 book ai didi

java - 使用 "code"配置自动连接服务注入(inject)

转载 作者:行者123 更新时间:2023-12-01 19:50:44 28 4
gpt4 key购买 nike

我已发布a similar question ,但我需要用一个例子来详细说明以获得有用的答案。

我不确定,使用 Spring Boot,如何定义 Spring 应该使用的类的特定实例来注入(inject) @Autowired 依赖字段/构造函数。

假设我有一个位于库中的实用程序类,我 a) 无权更改它,或者 b) 不想添加对 Spring Boot 的依赖项。

SecurityUtil - 接受两个字符串参数,这些参数可能来自某些应用程序级配置(在外部包中定义)。

public class SecurityUtil {
private final String algorithm;
private final String key;

public SecurityUtil(String algorithm, String key) {
// ...
}
}

PasswordHelper - 使用 SecurityUtil 签署密码(例如)。

public class PasswordHelper {
private final SecurityUtil securityUtil;

@Autowired
public PasswordHelper(SecurityUtil securityUtil) {
// ...
}
}

在应用程序启动期间,我希望能够使用应用程序配置(或其他地方)中定义的算法和 key 创建 SecurityUtil 的单例实例。我假设我能够添加一个类似于下面的类,但我不确定如何配置我的单例的注入(inject)。

DIConfig -- 配置 DI 的内容(例如

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DIConfig
{
@Value("${security-util.key}")
private String securityUtilKey;

@Value("${security-util.algorithm}")
private String securityUtilAlgorithm;

public void configure(SpringDiMagicalConfig config)
{
// register a singleton SecurityUtil instance
config.register(new SecurityUtil(securityUtilKey, securityUtilAlgorithm));
}
}

如何使用 Java/Spring Boot 完成此配置?

最佳答案

configure 方法替换为:

@Bean
public SecurityUtil securityUtil()
{
return new SecurityUtil(securityUtilKey, securityUtilAlgorithm);
}

关于java - 使用 "code"配置自动连接服务注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383255/

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