java - How to create multiple beans of same type according to configuration in Spring? -
i'm trying create specified number of beans of same type in spring.
i've tried:
@bean(name = "beanlist") public list<mybean> beanlist( @value("${number:1}") int number ) { list<mybean> beanlist = new arraylist<>(number); (int = 0; < number; i++) { beanlist.add(new mybean()); } return beanlist; }
but not expected.
in way, bean "beanlist" maintained spring context, instead of it's elements, can't specify name , init method or destroy method each element in list.
any ideas?
you have @ beanfactorypostprocessor, tried following code , it's working fine, bean
s depends on mybean
autowire
d:
@configuration public class appconfig implements beanfactorypostprocessor { @override public void postprocessbeanfactory(configurablelistablebeanfactory beanfactory) throws beansexception { (int = 0; < 3; i++) { system.out.println("register bean: " + i); beanfactory.registersingleton("bean-" + i, new mybean("mybean-" + i)); } } }
since have complete control of creation process of mybean
instance, can pass other beans in through constructor if it's necessary. hope helpful :-)
Comments
Post a Comment