Quel est l'intérêt d'utiliser @Bean plutôt que @Component
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:
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();
}
} |