[JAVA] Spring Framework Selbststudium Memo series_1

Es war ein Memo, als ich neulich selbst das Frühlings-Framework lernte. ..

  1. Geschichte & Grundkonzept Frühling 2002, Rod Jahnson in seinem Meisterwerk "Expert One-on-One J2EE Design und Entwicklung" Zum ersten Mal habe ich das Kernkonzept des Frühlings eingereicht. Zunächst soll das EJB ersetzt werden, aber im Laufe von 10 Jahren wird es eine Fülle von Funktionen haben. Es wurde ermöglicht und wurde zum wichtigsten Open-Source-Anwendungsframework innerhalb der Java-Plattform. Das Hauptmodul ist wie folgt   ●Spring Framework Auf Basis des Spring-Ökosystems laufen alle anderen Module auf dem Spring Framework.   ●Spring Boot Development Framework und Developer können schnell Anwendungen erstellen. Integrieren Sie problemlos andere Module von Drittanbietern (z. B. MyBatis). Sie können es verwenden, wenn Sie es leicht platzieren. Unterstützt das JSON-Format.   ●Spring Cloud Der Entwickler sammelt Module für die verteilte Entwicklung und verfügt über diese Module Sie können damit schnell Microservices erstellen. Das folgende Bild (Abbildung von der offiziellen Website)     undefined

Der Kernmechanismus von Spring ist IoC (Inversion der Steuerung) und AOP (aspektorientierte Programmierung).

Über IoC Wenn Sie für herkömmliche Methoden eine Instanz einer Klasse möchten, sollte der Entwickler New verwenden und diese selbst verwenden. In Bezug auf Ioc of Spring übernimmt IocContainer of Framework die gesamte Erstellung von Klasseninstanzen Entwickler können einfach direkt verwendet werden. Im Vergleich zur herkömmlichen Formel ist der Durchfluss umgekehrt, sodass es sich um eine Steuerungsumkehr handelt. Traditionell für die folgenden Klassen   public class Book { private String id; private String name; private int price; } Wenn Sie eine Instanz möchten, erstellen Sie sie mit dem folgenden Neu. Book bk = new Book(); Wenn Sie es dem IoC-Container von Spring überlassen, können Sie Folgendes tun.    ● Durch XML-Platzierung realisierte Muster ① Erstellen Sie ein leeres Spring Starter-Projekt ② Erstellen Sie im Ressourcenordner das folgende leere XML mit IoCbeans.xml

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

</beans>

③ Mit dem Bean-Tag erstellt IoC Container eine Instanz.  <bean id="book" class="learningAOP.learningAOP.bean.Book"></bean> ● id: Instanzname Klasse: Zielklasse Im folgenden Beispiel wird eine Instanz ohne Konstruktor erstellt. ④ Holen Sie sich eine Instanz ● Verwenden Sie die ID //ApplicationContextでXMLをロード   ApplicationContext applicationContext = new ClassPathXmlApplicationContext("IoCbeans.xml"); //bookとのIDでインスタンスを取得 Book book = (Book) applicationContext.getBean("book");   System.out.println(book); Die Ausgabe ist unten   ID: nullname: null price: 0

Die Werte jeder Eigenschaft sind alle Anfangswerte. Wenn Sie den Wert einer Eigenschaft festlegen möchten, lautet die XML-Definition Sie können es wie folgt ändern. PS: Buchklasse Getter & Setter ist erforderlich   <bean id="book" class="learningAOP.learningAOP.bean.Book"> <property name="ID" value="1"></property> <property name="name" value="demo"></property> <property name="price" value="100"></property>   </bean>

Ergebnis des erneuten Laufens  ID: 1name: demo price: 100 ● Verwenden Sie den Klassentyp //Beanのクラスを使って、インスタンスを取得 Book book1 = applicationContext.getBean(Book.class); System.out.println(book1); Der Nachteil ist, dass bei mehreren Bean-Definitionen derselben Klasse ein Fehler auftritt. ⑤ Wenn es einen Konstruktor gibt //引数付けConstructor public Book(String id, String name, int price) { this.ID = id; this.name = name; this.price = price; } Die XML-Bean-Definition lautet wie folgt <! - Instanz mit Konstruktor erstellen-> <bean id="bookcon" class="learningAOP.learningAOP.bean.Book"> <constructor-arg name="ID" value="2"> <constructor-arg name="name" value="demo2"> <constructor-arg name="price" value="200"> </bean>

Holen Sie sich eine Instanz mit der Hauptfunktion wie folgt Book bookcon= (Book)applicationContext.getBean("bookcon"); System.out.println(bookcon); Ausgabe ist ID: 2 name: demo2 price: 200 Das Obige ist ein einfaches Instanzsteuerelement. Wenn jedoch mehrere Klassen vorhanden sind und Abhängigkeiten bestehen, Realisiere wie folgt ( In der Buchklasse gibt es Mitglieder der Klasse mit Autor, kurz gesagt, die Buchklasse hängt von der Autorenklasse ab. public class Author { private String ID; private String name; private int age; } Buchklasse ist unten public class Book { private String id; private String name; private int price;   private Author author } PS: Getter & Setter hier weggelassen Definieren Sie in XML die Abhängigkeiten wie folgt <! - Autoreninstanz erstellen-> <bean id="author" class="learningAOP.learningAOP.bean.Author"> <property name="ID" value="1"> <property name="name" value="demo"> <property name="age" value="30"> </bean> <bean id="book" class="learningAOP.learningAOP.bean.Book"> <property name="ID" value="1"> <property name="name" value="demo"> <property name="price" value="100"> <! - Abhängigkeit hinzufügen-> <property name="author" ref="author"> Hier drückt ref die Abhängigkeit zwischen Klassen aus und ruft DI (Dependency Injection) auf. Dies ist ein konkreter Weg, um IoC zu realisieren. Wenn du es versuchst Book bookcon= (Book)applicationContext.getBean("book"); System.out.println(bookcon) Ausgabe ist ID: 1 name: demo price: 100 Author: ID: 1 name: demo age: 30 PS: Im neuesten Spring Boot werden Ioc & DI alle durch Anmerkungen realisiert.

Beispielquelle https://github.com/panguohua/learnSpring.git

Recommended Posts

Spring Framework Selbststudium Memo series_1
[Persönliche Notizen] Über das Spring Framework
Frühlingsrahmen Einfaches Studienmemo (2): AOP
Frühlingsrückblick Memo
Frühlingsrahmen Einfaches Studienmemo (1): ApplicationContext, Bean, Autowired
[Spring Framework] Konfigurationsaufteilung
JJUG CCC Frühjahr 2018 Memo
Mehrsprachige Unterstützung für Spring Framework
1. Starten Sie Spring Framework von 1
Spring Framework Zusammenfassung - Über DI
Hinweise zur Verwendung von Spring Shell
Schreiben von Frühlingsstiefel-Memos (1)
Schreiben von Spring Boot-Memos (2)
JJUG CCC 2018 Frühlingsbeteiligungsprotokoll
Play Framework Study Memo Database ①
Spring Security-Nutzungsnotiz CSRF
Informationen zum Spring Framework-Kontextfehler
Spring Security-Nutzungsnotiz Run-As
Sicherheit der Verwendungsnotizmethode für Spring Security
Spring Security-Nutzungsnotiz Remember-Me
Spring Security-Nutzungsnotiz CORS
Spring Security-Verwendungsnotiztest
Memo zur Spring Boot Controller-Methode
Spring Security-Nutzungsnotiz Authentifizierung / Autorisierung
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
Spring Framework 5.0 Zusammenfassung der wichtigsten Änderungen
Antwortheader für die Verwendung von Spring Security
Memo nach dem ersten Frühjahrsprojekt-MVC-
Spring Framework-Tools für Java-Entwickler
Sitzungsverwaltung für Spring Security-Nutzungsnotizen
Rüsten Sie den Federstiefel von der 1.5-Serie auf die 2.0-Serie auf
Spring Security-Nutzungsnotiz Basic / Mechanismus
Ein Memo, das Spring Boot berührte
Frühjahr gründliche Einführung Version Upgrade Memo
Memo nach dem ersten Frühjahrsprojekt-Datenbank-
Testen Sie den Spring Framework Controller mit Junit