Bonjour,
je dois utiliser Spring Ioc dans l'un de mes projets.

je souhaiterai utiliser les annotations pour l'injection sur une liste.

je vous montre un cas simple.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
@Component
public class Banque {
 
	@Autowired
	private List<Agence> agences;
 
	public Banque() {
		agences = new ArrayList<Agence>();
	}
 
	public List<Agence> getAgences() {
		return agences;
	}
 
	public void setAgences(List<Agence> agences) {
		this.agences = agences;
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
@Component
@Scope("prototype")
public class Agence {
 
	private String nom;
 
	public Agence(){
		nom = "Test";
	}
 
	public Agence(String nom){
		nom = nom;
	}
 
	public String getNom() {
		return nom;
	}
 
	public void setNom(String nom) {
		this.nom = nom;
	}
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public static void main(String[] args) {
 
		ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"application-context.xml"});
		Agence agence1 = (Agence)context.getBean("agence");
		Agence agence2 = (Agence)context.getBean("agence");
		Banque banque = (Banque)context.getBean("banque");
 
		agence1.setNom("agence1");
		agence2.setNom("agence2");
 
		banque.getAgences().add(agence1);
		banque.getAgences().add(agence2);
 
		System.out.println("Les Agences sont : " +agence1.getNom());
		System.out.println("Les Agences sont : " +agence2.getNom());
		System.out.println("Nombre d'agence de la banque : " + banque.getAgences().size());
 
		for(Agence a:banque.getAgences()){
			System.out.println("Les Agences  de la banque sont : " + a.getNom());
		}
 
		context.close();
	}
J'obtiens 3 agences et non 2 (test,agence1,agence2). Cela est il normal? si oui pourquoi? ou est ce que c moi qui comprend de travers??

mercredi votre aide