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; } }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??
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(); }
mercredi votre aide
Partager