Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Bean-Erfassungsmethoden im Frühjahr

Detaillierte Erläuterung der Bean-Erfassungsmethoden im Frühjahr

WBOY
WBOYOriginal
2023-12-30 08:49:031387Durchsuche

Detaillierte Erläuterung der Bean-Erfassungsmethoden im Frühjahr

Detaillierte Erläuterung der Bean-Erwerbsmethode im Frühling

Im Spring-Framework ist der Bean-Erwerb ein sehr wichtiger Teil. In Anwendungen müssen wir häufig die Abhängigkeitsinjektion verwenden oder Bean-Instanzen dynamisch abrufen. In diesem Artikel wird detailliert beschrieben, wie Sie Beans im Frühjahr erhalten, und es werden spezifische Codebeispiele aufgeführt.

  1. Bean über @Component-Annotation abrufen

Die @Component-Annotation ist eine der am häufigsten verwendeten Annotationen im Spring-Framework. Wir können es als Bean identifizieren, indem wir der Klasse die Annotation @Component hinzufügen und den ApplicationContext verwenden, um eine Instanz des Beans aus dem Container abzurufen. Hier ist ein Beispiel:

@Component
public class UserService {
    // ...
}

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        // ...
    }
}
  1. Get Bean durch @Autowired-Annotation

@Autowired-Annotation ist eine weitere häufig verwendete Annotation im Spring-Framework. Durch Hinzufügen der @Autowired-Annotation zu einer Mitgliedsvariablen fügt Spring automatisch die passende Bean in diese Variable ein. Hier ist ein Beispiel:

@Component
public class UserService {
    @Autowired
    private UserRepository userRepository;
    // ...
}

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        // ...
    }
}
  1. Bohnen über die @Qualifier-Annotation abrufen

Wenn sich bei Verwendung der @Autowired-Annotation mehrere passende Beans im Container befinden, kann Spring nicht bestimmen, welche Bean injiziert werden soll. An dieser Stelle können Sie die Annotation @Qualifier verwenden, um den Namen der einzuschleusenden Bean anzugeben. Hier ist ein Beispiel:

@Component
public class UserService {
    @Autowired
    @Qualifier("userRepositoryImpl")
    private UserRepository userRepository;
    // ...
}

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        // ...
    }
}
  1. Bean über @Bean-Annotation abrufen

Zusätzlich zum Hinzufügen von Beans mithilfe von Annotationen können wir Beans auch mithilfe von @Configuration- und @Bean-Annotationen erstellen. Mit @Configuration annotierte Klassen werden vom Spring-Container als Konfigurationsklassen erkannt und @Bean-Annotationen werden in den Konfigurationsklassen zum Erstellen von Bean-Instanzen verwendet. Hier ist ein Beispiel:

@Configuration
public class AppConfig {
    @Bean
    public UserService userService() {
        return new UserService();
    }
}

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = context.getBean(UserService.class);
        // ...
    }
}
  1. Beans über XML-Konfigurationsdateien abrufen

Zusätzlich zur Verwendung von Anmerkungen können wir auch XML-Konfigurationsdateien verwenden, um Beans abzurufen. In der XML-Konfigurationsdatei können wir den Namen, den Typ und die Eigenschaften der Bean definieren und die Konfigurationsdatei über ApplicationContext laden, um die Bean-Instanz zu erhalten. Hier ist ein Beispiel:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userService" class="com.example.UserService">
        <property name="userRepository" ref="userRepositoryImpl" />
    </bean>

    <bean id="userRepositoryImpl" class="com.example.UserRepositoryImpl" />

</beans>
public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = context.getBean("userService", UserService.class);
        // ...
    }
}

Die oben genannten sind einige gängige Methoden, um im Frühling Bohnen zu erhalten. Durch die Verwendung von @Component-, @Autowired-, @Qualifier-, @Bean- und XML-Konfigurationsdateien können wir problemlos die in der Anwendung benötigten Bean-Instanzen erhalten. Für verschiedene Szenarien können wir den geeigneten Weg zum Abrufen von Beans wählen, und der Abhängigkeitsinjektionsmechanismus von Spring kann unseren Code präziser, flexibler und testbarer machen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Bean-Erfassungsmethoden im Frühjahr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn