例如:现在有类A及类B,在Spring中配置类A的Bean a及类B的Bean b,其中a的scope为prototype,其中a有许多配置参数且已在配置文件中配置好了。
问题是:Bean b有对类A对象数组的引用且它的数量是动态配置的,即在配置文件中,可由一个属性aNum来指定。例如:若aNum指定为5,那么就应该由Spring注入5个不同的bean a。
本人仅想到了的方法:用后置处理器,但在后置处理器中怎么访问Spring容器?Spring机制中,容器如何把自己注入到Bean中?。或者有其它更好的使用Spring的办法来实现这一特性?要求就是在类B中不要出现Spring类。
不好意思,本人刚刚用Spring开发项目。所以请高手来出出招。
------解决方案--------------------
...你五个A类,和一个A类有什么区别?
感觉B的设计得有点问题
如果非要这样的话,你就可以写五个A配置,然后在B的相关配置中指向五个A的Bean
------解决方案--------------------
------解决方案--------------------
我觉得技术上简单点,但配置稍微复杂点的做法是使用Set或者list注入:
例如:
- XML code
<beans> <!-- oracle bean used for a few examples --> <bean id="A1" name="A1" class="com.pkg.ClassA"/> <bean id="A2" name="A2" class="com.pkg.ClassA"/> <bean id="A3" name="A3" class="com.pkg.ClassA"/> <!-- collection injection --> <bean id="B" class="com.pkg.ClassB"> <property name="AClsList"> <list> <ref local="A1"/> <ref local="A2"/> </list> </property> </bean></beans>
------解决方案--------------------