Frühlingsinnenbohne Beispiele

Beispiele für innere Bohnen im Frühling

Wenn im Spring Framework eine Bean nur für eine bestimmte Eigenschaft verwendet wird, wird empfohlen, sie als innere Bean zu deklarieren. Und die innere Bohne wird sowohl bei der Setter-Injektion „property“ als auch bei der Konstruktor-Injektion „constructor-arg“ unterstützt.

Schauen Sie sich ein detailliertes Beispiel an, um die Verwendung der Spring-Innenbohne zu demonstrieren.

package com.example.common;

public class Customer
{
    private Person person;

    public Customer(Person person) {
        this.person = person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    @Override
    public String toString() {
        return "Customer [person=" + person + "]";
    }
}
package com.example.common;

public class Person
{
    private String name;
    private String address;
    private int age;

    //getter and setter methods

    @Override
    public String toString() {
        return "Person [address=" + address + ",
                               age=" + age + ", name=" + name + "]";
    }
}

Oft können Sie das Attribut "ref" verwenden, um die Bean "Person" wie folgt in die Bean "Customer" zu verweisen, Personeneigenschaft:



    
        
    

    
        
        
        
    

Im Allgemeinen ist es in Ordnung, auf diese Weise zu verweisen. Da die Personen-Bean "Beispiel" jedoch nur für die Kunden-Bean verwendet wird, ist es besser, diese "Beispiel" -Person wie folgt als innere Bean zu deklarieren:



    
        
            
                
                
                
            
        
    

Diese innere Bean unterstützt auch die Konstruktorinjektion wie folgt:



    
        
            
                
                
                
            
        
    

Note
Die ID oder der Namenswert in der Bean-Klasse ist in einer inneren Bean nicht erforderlich, sondern wird vom Spring-Container einfach ignoriert.

Starte es

package com.example.common;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App
{
    public static void main( String[] args )
    {
        ApplicationContext context =
          new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"});

        Customer cust = (Customer)context.getBean("CustomerBean");
        System.out.println(cust);

    }
}

Ausgabe

Customer [person=Person [address=address1, age=28, name=example]]