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注释,例如创建。

@Component

public class RedColourHandler implements ColourHander{

.....

}

并引用了colourHandlers的映射;

@Resource(name="colourHandlers")

private Map<ColourHandlerEnum, ColourHandler> colourHandlers;

谢谢,

伊恩

回答:

您可能想要这样的东西:

@Configuration

public 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();

}

}

如果需要将处理程序保持为@Components,则可以将它们自动连接到配置类中:

@Configuration

public 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

回到顶部