Bonjour,
En tant que débutant dans l'environnement Spring, je cherche à comprendre les outils fournis par ce framework afin de les utiliser à bon escient. Je n'arrive toujours pas à comprendre pourquoi on utilise @Bean plutôt que @Component !
@Component semble bien plus simple à mettre en oeuvre que @Bean !
J'ai fait un test avec le code suivant et je ne vois pas la différence de résultat :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
public class MyBean {
    public MyBean(){}
    public String hello(){
        return "Hello I am MyBean";
    }
}
@Component
public class MyComponent {
    public MyComponent(){}
    public String hello(){
        return "Hello I am MyComponent";
    }
}
@Service
public class MyService {
    @Autowired
    MyBean myBean;
    @Autowired
    MyComponent myComponent;
 
    public String helloMyComponent(){
        return myComponent.hello();
    }
 
    public String helloMyBean(){
        return myBean.hello();
    }
}
@Configuration
public class MyConfiguration {
    @Bean
    public MyBean getMyBean(){
        return new MyBean();
    }
}
@RestController
@RequestMapping("/test")
public class MyController {
 
    @Autowired
    MyService myService;
 
    @GetMapping("/bean")
    public String getHelloBean(){
        return myService.helloMyBean();
    }
 
    @GetMapping("/compo")
    public String getHelloCompo(){
        return myService.helloMyComponent();
    }
}