Inhaltsverzeichnis
1. Objekte über Konstruktoren erstellen.
2.1 Wert mit Konstruktor ohne Argumente + Setter-Methode einfügen
2.2 Verwendung parametrischer Konstruktion Die Funktion wird direkt in die
2. Erstellen Sie Objekte mit statischen Factory-Methoden.
3. Erstellen Sie Objekte über Instanzfabriken.
Heim Java javaLernprogramm Detaillierte Erklärung, wie Spring Objekte erstellt

Detaillierte Erklärung, wie Spring Objekte erstellt

Jul 21, 2017 pm 10:09 PM
spring 方式

Informationen zum Aufbau von Spring finden Sie unter: Eine kurze Analyse des Aufbaus des Spring-Frameworks. Vor dem Testen sollten Sie die Umgebung konfigurieren und die relevanten Jar-Pakete importieren. Von Spring erstellte Objekte befinden sich standardmäßig im Singleton-Modus, sofern dies nicht über den Bereich angegeben wird.

1. Objekte über Konstruktoren erstellen.

2.1 Wert mit Konstruktor ohne Argumente + Setter-Methode einfügen

Die einfachste Möglichkeit zum Erstellen eines Objekts besteht darin, dass Sie nur einen Konstruktor ohne Argumente benötigen (in der Klasse ist kein Konstruktor geschrieben). , der Standardwert ist Es gibt einen Konstruktor. Wenn ein Konstruktor geschrieben wird, wird der Standardkonstruktor ohne Argumente nicht automatisch erstellt!!) und die Setter-Methode des Feldes.

Personenklasse:

Detaillierte Erklärung, wie Spring Objekte erstellt
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt

XML-Konfiguration:

Detaillierte Erklärung, wie Spring Objekte erstellt
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><property></property><property></property></bean>    
</beans>
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt

Das Wesentliche ist:

SpringContext verwendet einen Konstruktor ohne Parameter, um ein Objekt zu erstellen, und verwendet dann die Setter-Methode, um einen Wert zuzuweisen. Wenn der Parameterlose Konstruktor nicht vorhanden ist, wird daher ein Fehler gemeldet, wenn der Spring-Kontext das Objekt erstellt.

Detaillierte Erklärung, wie Spring Objekte erstellt
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'person' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; 
nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.mc.base.learn.spring.bean.Person]: No default constructor found; 
nested exception is java.lang.NoSuchMethodException: com.mc.base.learn.spring.bean.Person.
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt

2.2 Verwendung parametrischer Konstruktion Die Funktion wird direkt in die

Person-Klasse eingefügt:

Detaillierte Erklärung, wie Spring Objekte erstellt
package com.mc.base.learn.spring.bean;public class Person {private String name;private Integer id;    public Person(String name, Integer id) {super();this.name = name;this.id = id;
    }public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getId() {return id;
    }public void setId(Integer id) {this.id = id;
    }

    @Overridepublic String toString() {return "Person [name=" + name + ", id=" + id + "]";
    }

}
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt

XML-Konfiguration:

Detaillierte Erklärung, wie Spring Objekte erstellt
<?xml  version="1.0" encoding="UTF-8"?><beans><bean><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean>    
</beans>
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt

2. Erstellen Sie Objekte mit statischen Factory-Methoden.

Statische Factory-Objekte werden beim Laden des Containers erstellt.

Detaillierte Erklärung, wie Spring Objekte erstellt
package com.mc.base.learn.spring.factory;import com.mc.base.learn.spring.bean.Person;public class PersonStaticFactory {    public static Person createPerson(){return new Person();
    }    /** * 工厂方法带有参数如何处理?
     * @Title: createPerson 
     * @Description: TODO(这里用一句话描述这个方法的作用) 
     * @param  @param id
     * @param  @param name
     * @param  @return 
     * @return Person    返回类型 
     * @throws     */public static Person createPerson(Integer id,String name){return new Person(name,id);
    }
}
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt
    <span style="color: #008000;"><!--<span style="color: #008000;">静态的工厂方法核心是class+factory-method <span style="color: #008000;">--><span style="color: #0000ff;"><span style="color: #800000;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #ff0000;"><span style="color: #0000ff;"><span style="color: #0000ff;"><span style="color: #800000;"><span style="color: #0000ff;"><br>    <span style="color: #008000;"><span style="color: #008000;"><span style="color: #008000;"> <span style="color: #0000ff;">bean <span style="color: #ff0000;">id<span style="color: #0000ff;">="person"<span style="color: #ff0000;"> class<span style="color: #0000ff;">="com.mc.base.learn.spring.factory.PersonStaticFactory"<span style="color: #ff0000;"> factory-method<span style="color: #0000ff;">="createPerson"<span style="color: #0000ff;">><br><span style="color: #008000;"><!--<span style="color: #008000;">通过property方法向createPerson传递参数 <span style="color: #008000;">--></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br>        <property name="name" value="LiuChunfu"></property><br>        <property name="id" value="125"></property><br>    <br></span></span></span></span></span></span></span></span></span>
Nach dem Login kopieren

Der Test läuft wie folgt ab:

    @Testpublic void testName() throws Exception {
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Person person=ac.getBean("person3", Person.class);
        System.out.println(person);//Person [name=LiuChunfu, id=125]}
Nach dem Login kopieren

3. Erstellen Sie Objekte über Instanzfabriken.

Instanzfabrik ruft Objekte über Instanzen auf, aber die erhaltenen Objekte befinden sich letztendlich im Single-Interest-Modus. Die von der Instanzfabrik und der statischen Fabrik erstellten Objekte sind beide im Singleton-Modus. Der Unterschied zwischen den beiden ist der tatsächliche Unterschied beim Erstellen des Objekts. Die statische Fabrik wird erstellt, wenn der Container erstellt wird, und die Instanzfabrik wird erstellt, wenn die Methode erstellt wird heißt. Leser, die das Singleton-Musterdesign (Hungry-Man-Stil und Lazy-Man-Stil) in Java-Designmustern kennen, müssen hier über Erfahrung mit dem statischen Factory-Muster und dem Instanz-Factory-Muster verfügen.

Detaillierte Erklärung, wie Spring Objekte erstellt
package com.mc.base.learn.spring.factory;import com.mc.base.learn.spring.bean.Person;public class PersonFactory {public Person createInstance() {return new Person();
    }
}
Nach dem Login kopieren
Detaillierte Erklärung, wie Spring Objekte erstellt
    <bean></bean><bean><property></property><property></property></bean>
Nach dem Login kopieren
    @Testpublic void testName() throws Exception {
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        Person person=ac.getBean("person4",Person.class);
        System.out.println(person);//Person [name=LiuChunfu, id=125]}
Nach dem Login kopieren

Natürlich können Sie beim Erstellen eines Objekts und der oben genannten Parameterübergabe zusätzlich zur Übergabe der Standardparameter beim Erstellen des Objekts die Parameter auch später über die Setter-Methode übergeben.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Spring Objekte erstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

Die Unterschiede und Zusammenhänge zwischen Spring Boot und Spring Cloud Die Unterschiede und Zusammenhänge zwischen Spring Boot und Spring Cloud Jun 22, 2023 pm 06:25 PM

SpringBoot und SpringCloud sind beides Erweiterungen des Spring Framework, die Entwicklern dabei helfen, Microservice-Anwendungen schneller zu erstellen und bereitzustellen. Sie haben jedoch jeweils unterschiedliche Zwecke und Funktionen. SpringBoot ist ein Framework zum schnellen Erstellen von Java-Anwendungen, das es Entwicklern ermöglicht, Spring-basierte Anwendungen schneller zu erstellen und bereitzustellen. Es bietet eine einfache und leicht verständliche Möglichkeit, eigenständige, ausführbare Spring-Anwendungen zu erstellen

Die 7 am häufigsten verwendeten Anmerkungen in Spring, der mächtigsten Organisation der Geschichte! Die 7 am häufigsten verwendeten Anmerkungen in Spring, der mächtigsten Organisation der Geschichte! Jul 26, 2023 pm 04:38 PM

Mit der Aktualisierung und Iteration der Technologie begann Java5.0, Anmerkungen zu unterstützen. Als führendes Framework in Java hat Spring seit der Aktualisierung auf Version 2.5 langsam damit begonnen, die XML-Konfiguration aufzugeben, und es werden mehr Annotationen zur Steuerung des Spring-Frameworks verwendet.

So legen Sie die Transaktionsisolationsstufe im Frühjahr fest So legen Sie die Transaktionsisolationsstufe im Frühjahr fest Jan 26, 2024 pm 05:38 PM

So legen Sie die Transaktionsisolationsstufe in Spring fest: 1. Verwenden Sie die Annotation @Transactional. 3. Legen Sie sie in der Spring-Konfigurationsdatei fest. 4. Legen Sie sie in der Java-Konfigurationsklasse fest. Detaillierte Einführung: 1. Verwenden Sie die Annotation @Transactional, fügen Sie die Annotation @Transactional zu der Klasse oder Methode hinzu, die eine Transaktionsverwaltung erfordert, und legen Sie die Isolationsstufe im Attribut fest. 2. In der Spring-Konfigurationsdatei usw.

Anwendung des JUnit-Unit-Test-Frameworks in Spring-Projekten Anwendung des JUnit-Unit-Test-Frameworks in Spring-Projekten Apr 18, 2024 pm 04:54 PM

JUnit ist ein weit verbreitetes Java-Unit-Test-Framework in Spring-Projekten und kann mit den folgenden Schritten angewendet werden: JUnit-Abhängigkeit hinzufügen: org.junit.jupiterjunit-jupiter5.8.1test Testfälle schreiben: Verwenden Sie @ExtendWith(SpringExtension.class), um die Erweiterung zu aktivieren. Verwenden Sie @Autowired-Inject-Beans, verwenden Sie @BeforeEach und @AfterEach zum Vorbereiten und Bereinigen und markieren Sie Testmethoden mit @Test.

Frühlingsanmerkung enthüllt: Analyse gängiger Anmerkungen Frühlingsanmerkung enthüllt: Analyse gängiger Anmerkungen Dec 30, 2023 am 11:28 AM

Spring ist ein Open-Source-Framework, das viele Anmerkungen bereitstellt, um die Java-Entwicklung zu vereinfachen und zu verbessern. In diesem Artikel werden häufig verwendete Spring-Annotationen ausführlich erläutert und spezifische Codebeispiele bereitgestellt. @Autowired: Die Autowired-Annotation @Autowired kann verwendet werden, um Beans im Spring-Container automatisch zu verdrahten. Wenn wir die Annotation @Autowired verwenden, wenn Abhängigkeiten erforderlich sind, findet Spring passende Beans im Container und fügt sie automatisch ein. Der Beispielcode lautet wie folgt: @Auto

See all articles