Spring Bean Annotation

Die Spring @Bean Annotation wird auf eine Methode angewendet, um anzugeben, dass sie einen Bean zurückgibt, der vom Spring-Kontext verwaltet wird. Die Spring Bean Annotation wird normalerweise in den Methoden von Configuration-Klassen deklariert. In diesem Fall können Bean-Methoden auf andere @Bean-Methoden in derselben Klasse direkt verweisen, indem sie diese direkt aufrufen.

Spring Bean Beispiel

Nehmen wir an, wir haben eine einfache Klasse wie folgt.

package com.journaldev.spring;

public class MyDAOBean {

    @Override
    public String toString() {
        return "MyDAOBean" + this.hashCode();
    }
}

Hier ist eine Configuration-Klasse, in der wir eine @Bean-Methode für die MyDAOBean-Klasse definiert haben.

package com.journaldev.spring;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyAppConfiguration {

    @Bean
    public MyDAOBean getMyDAOBean() {
        return new MyDAOBean();
    }
}

Wir können den MyDAOBean-Bean aus dem Spring-Kontext mit dem folgenden Code-Snippet beziehen.

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
context.scan("com.journaldev.spring");
context.refresh();
        
//Getting Bean by Class
MyDAOBean myDAOBean = context.getBean(MyDAOBean.class);

Spring Bean-Name

Wir können den @Bean-Namen spezifizieren und ihn verwenden, um die Beans aus dem Spring-Kontext zu beziehen. Nehmen wir an, wir haben eine MyFileSystemBean-Klasse wie folgt definiert:

package com.journaldev.spring;

public class MyFileSystemBean {

    @Override
    public String toString() {
        return "MyFileSystemBean" + this.hashCode();
    }
    
    public void init() {
        System.out.println("init method called");
    }
    
    public void destroy() {
        System.out.println("destroy method called");
    }
}

Definieren Sie jetzt eine @Bean-Methode in der Konfigurationsklasse:

@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"})
public MyFileSystemBean getMyFileSystemBean() {
    return new MyFileSystemBean();
}

Wir können diesen Bean aus dem Kontext unter Verwendung des Bean-Namens beziehen.

MyFileSystemBean myFileSystemBean = (MyFileSystemBean) context.getBean("getMyFileSystemBean");

MyFileSystemBean myFileSystemBean1 = (MyFileSystemBean) context.getBean("MyFileSystemBean");

Spring @Bean initMethod und destroyMethod

Wir können auch eine Init-Methode und eine Destroy-Methode für Spring Beans spezifizieren. Diese Methoden werden aufgerufen, wenn der Spring Bean erstellt wird und wenn der Kontext entsprechend geschlossen wird.

@Bean(name= {"getMyFileSystemBean","MyFileSystemBean"}, initMethod="init", destroyMethod="destroy")
public MyFileSystemBean getMyFileSystemBean() {
    return new MyFileSystemBean();
}

Sie werden bemerken, dass die „init“-Methode aufgerufen wird, wenn wir die Kontext-Refresh-Methode aufrufen und die „destroy“-Methode aufgerufen wird, wenn wir die Kontext-Schließ-Methode aufrufen.

Zusammenfassung

Die Spring @Bean Annotation wird häufig in annotierungsbasierten Spring-Anwendungen verwendet.

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren:

centron Managed Cloud Hosting in Deutschland

Java-Array: So prüfst du Werte effizient

JavaScript
Wie prüft man, ob ein Java Array einen Wert enthält? Es gibt viele Möglichkeiten, um zu überprüfen, ob ein Java Array einen bestimmten Wert enthält. Einfache Iteration mit einer for-Schleife…