Ich sehe eine Menge Antworten und fast überall wird es erwähnt @Component
ist für die automatische Verdrahtung, bei der die Komponente gescannt wird, und @Bean
es genau die erklärt, dass die Bohne anders verwendet werden soll. Lassen Sie mich zeigen, wie es anders geht.
Zunächst handelt es sich um eine Bemerkung auf Methodenebene. Zweitens verwenden Sie sie im Allgemeinen, um Beans in Java-Code zu konfigurieren (wenn Sie keine XML-Konfiguration verwenden) und sie dann von einer Klasse aus mit der ApplicationContext.getBean
Methode. Beispiel:
@Configuration
class MyConfiguration{
@Bean
public User getUser() {
return new User();
}
}
class User{
}
// Getting Bean
User user = applicationContext.getBean("getUser");
Es ist der allgemeine Weg, eine Bean zu annotieren und nicht eine spezialisierte Bean. Es ist eine Annotation auf Klassenebene und wird verwendet, um den ganzen Konfigurationskram durch Java- oder Xml-Konfiguration zu vermeiden.
Das sieht dann etwa so aus.
@Component
class User {
}
// to get Bean
@Autowired
User user;
Das war's. Sie wurde nur eingeführt, um alle Konfigurationsschritte zur Instanziierung und Verwendung dieser Bean zu vermeiden.