Spring bean构造函数arg

时间:2018-04-13 08:23:51

标签: spring javabeans

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"
       default-autowire="byName"> 
     <bean name="schedulerMap" class="java.util.HashMap">
        <constructor-arg>
            <map>
                <entry key="moBiScheduler" value-ref="moBiScheduler"/>
                <entry key="billJobScheduler" value-ref="billJobScheduler"/>
            </map>
        </constructor-arg> 
    </bean>
 </beans>

这是一些XML。

在课堂上,我想使用@Autowired来注入key='moBiScheduler'key='billJobScheduler'

的值
@Autowired
private Map<String, Scheduler> schedulerMap;

1 个答案:

答案 0 :(得分:0)

可能,你可以

  • autoriwre一个方法,它接受Map并进行一些过滤并将正确的值放入schedulerMap
  • 创建另一个MapHolder类,它扩展Map(它是可选的)并实现ApplicationContextAware。在注入ApplicationContext之后,您可以检索schedulerMap并进行一些过滤并将正确的值放到地图上,然后注入此地图
  • 您也可以使用BeanPostProcessor