Friday, 15 March 2013

java - Inject a list of beans using Spring @Configuration annotation -



java - Inject a list of beans using Spring @Configuration annotation -

i've got spring bean, , in spring bean have dependency on list of other beans. question is: how can inject generic list of beans dependency of bean?

for example, code:

public interface color { } public class reddish implements color { } public class bluish implements color { }

my bean:

public class painter { private list<color> colors; @resource public void setcolors(list<color> colors) { this.colors = colors; } } @configuration public class myconfiguration { @bean public reddish red() { homecoming new red(); } @bean public bluish blue() { homecoming new blue(); } @bean public painter painter() { homecoming new painter(); } }

the question is; how list of colors in painter? also, on side note: should have @configuration homecoming interface type, or class?

thanks help!

what have should work, having @resource or @autowired on setter should inject instances of color list<color> field.

if want more explicit, can homecoming collection bean:

@bean public list<color> colorlist(){ list<color> alist = new arraylist<>(); alist.add(blue()); homecoming alist;

and utilize autowired field way:

@resource(name="colorlist") public void setcolors(list<color> colors) { this.colors = colors; }

or

@resource(name="colorlist") private list<color> colors;

on question returning interface or implementation, either 1 should work, interface should preferred.

java spring spring-annotations

No comments:

Post a Comment