Spring Java配置-如何创建枚举到bean-引用的映射
使用基于Java的配置,我试图转换一个将枚举映射到bean引用的映射以纯Java配置(当前为XML&works),但似乎在文档中找不到任何内容;
目前,我的XML就像这样;
<util:map id="colourHanders" key-type="com.example.ColourEnum" value-type="com.example.ColourHandler">
<entry key="white" value-ref="whiteColourHandler"/>
<entry key="blue" value-ref="blueColourHandler"/>
<entry key="red" value-ref="redColourHandler"/>
</util:map>
我敢肯定,这很容易,但是同样,在如何用Pure Java表示这个主题上找不到任何东西(因此我没有任何XML配置文件)。
注意; 在ColourHandler
豆使用@Component注释,例如创建。
@Componentpublic class RedColourHandler implements ColourHander{
.....
}
并引用了colourHandlers的映射;
@Resource(name="colourHandlers") private Map<ColourHandlerEnum, ColourHandler> colourHandlers;
谢谢,
伊恩
回答:
您可能想要这样的东西:
@Configurationpublic class MyConfiguration {
@Bean public Map<ColourEnum, ColourHandler> colourHandlers() {
Map<ColourEnum, ColourHandler> map = new EnumMap<>();
map.put(WHITE, whiteHandler());
// etc
return map;
}
@Bean public ColourHandler whiteHandler() {
return new WhiteHandler();
}
}
如果需要将处理程序保持为@Component
s,则可以将它们自动连接到配置类中:
@Configurationpublic class MyConfiguration {
@Autowired private WhiteColourHandler whiteColourHandler;
@Bean public Map<ColourEnum, ColourHandler> colourHandlers() {
Map<ColourEnum, ColourHandler> map = new EnumMap<>();
map.put(WHITE, whiteColourHandler);
return map;
}
}
以上是 Spring Java配置-如何创建枚举到bean-引用的映射 的全部内容, 来源链接: utcz.com/qa/419378.html