我有许多IO类,它们都需要PKI信息(密钥和信任库)自动连接到它们中,以便它们可以建立连接。目前我们在所有地方都使用相同的PKI信息,但我们最终可能需要不同的PKI用于不同的接口。
出于这个原因,我希望能够在每个接口中使用@autowire,允许每个PKI有一个唯一的名称,如果我想要唯一的PKI,我可以稍后决定通过xml注入该名称,但如果找不到自动配置名称,也可以让spring默认自动创建我的单个‘主’PKI信息(因为我还没有需要定义一个唯一的PKI bean,而不是该实例的默认值)。
我相信,如果我只有一个Keystore bean,这将非常好地工作,但是如果我有两个Keystore bean,我不确定会发生什么。
假设我有三个地方自动挂载我的密钥库,名称分别为foo、bar和baz。我最初注册了一个keystore bean,我想所有人都会得到这个全局bean,而不管byName是什么,因为只有一种类型存在。
然后,我添加了一个名为foo的keystore bean,它应该自动连接到设置了byName=foo的keystore。但是,我如何确保bar和baz密钥库仍然知道加载我的“默认”密钥库?
发布于 2016-04-29 00:29:04
如果我没理解错的话,应该是这样的。
public interface Keystore{}
@Component("keystoreImplFirst")
public class KeystoreImplFirst implements Keystore{}
@Component("keystoreImplSecond")
public class KeystoreImplSecond implements Keystore{}然后用法:
@Autowired
@Qualifier("keystoreImplFirst")
Keystore keystore;您也可以使用@Resource注释,但请记住,名称将根据您的变量名称进行解析。你可以在LINK找到更多的解释和例子
@Resource
Keystore keystoreImplFirsthttps://stackoverflow.com/questions/36920325
复制相似问题