Heim  >  Artikel  >  Java  >  Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

PHPz
PHPznach vorne
2023-05-07 13:31:16624Durchsuche

    Bean-Objekte speichern

    Als wir zuvor Bean-Objekte gespeichert haben, mussten wir eine Zeile mit Beans in die Konfigurationsdatei einfügen, um sie zu injizieren.

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Diese Injektionsmethode ist nicht gut, wenn ein Fehler auftritt In der Konfigurationsdatei befindet sich das Programm. Es wird keine Fehlermeldung angezeigt. Das ist für Anfänger sehr unfreundlich.

    1. Erstellen Sie ein Projekt

    Erstellen Sie eine Startklasse und eine Hauptmethode创建启动类和main方法

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    引入依赖

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    创建配置文件

    我们约定好创建的bean对象放在com.bean包下:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    2.添加注解将bean存入到容器中

    使用Spring的核心就是使用注解,我们学习的注解有5个

    @Controller 【控制器】@Service 【服务】@Repository 【仓库】@Configuration 【配置/布局】@Component 【组件】 2.1 controller

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    我们之前能够通过传入id参数来获取对象,但那是加了一行bean手动加入的id,但现在我们使用了注解,难道就只能使用类类型来获取吗?

    我们使用注解注入bean对象时,id其实默认是类名的小驼峰形式:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    原因先不解释,后面会说。

    容易犯的错:
    我们之前在配置文件中加入了bean对象查找的根目录,意味着会从这个目录开始向下搜索,但不会向上:

    下级目录

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    上级目录

    Java Spring Lese- und Speicherinstanzanalyse

    Beispielanalyse von Lese- und Schreibvorgängen in Java SpringEinführung von Abhängigkeiten

    Java Spring Reading and Storage Instance AnalysisBeispielanalyse von Lese- und Schreibvorgängen in Java Springrrreee

    Konfigurationsdatei erstellen

    Wir haben vereinbart, das Bean-Objekt in com.bean zu erstellen Paket: Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Java Spring Lese- und SpeicherinstanzanalyseBeispielanalyse von Lese- und Schreibvorgängen in Java Spring rrreee

    2. Fügen Sie Anmerkungen hinzu, um Beans im Container zu speichern
    Der Kern der Verwendung von Spring besteht in der Verwendung von Anmerkungen. Wir haben 5 Anmerkungen gelernt

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring@Controller [Controller] @Service [Service] @Repository [Warehouse] @Configuration [Konfiguration /Layout]@Component [Component] 2.1 Controller

    Java Spring Lese- und Speicherinstanz AnalyseBeispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Java Spring Lese- und Speicherinstanzanalyse
    Wir konnten das Objekt zuvor durch die Übergabe des Parameters „id“ erhalten, aber das bedeutete, dass wir eine Reihe von Beans hinzufügen mussten, um die ID manuell hinzuzufügen. Aber jetzt, wo wir Annotationen verwenden, können wir dann nur den Klassentyp verwenden, um es zu erhalten?

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Wenn wir Annotationen zum Einfügen von Bean-Objekten verwenden, ist die ID standardmäßig die Kamelfallform des Klassennamens:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Java Spring-Lese- und Speicherinstanzanalyse
    Der Grund wird zunächst nicht erklärt, sondern später besprochen.

    Beispielanalyse von Lese- und Schreibvorgängen in Java SpringEinfache Fehler:
    Wir haben zuvor das Stammverzeichnis für die Bean-Objektsuche in der Konfigurationsdatei hinzugefügt, was bedeutet, dass die Suche von diesem Verzeichnis nach unten, aber nicht nach oben beginnt:

    Verzeichnis herunterladenBeispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Java Spring-Lese- und Speicherbeispielanalyse
    Java Spring Lese- und Speicherbeispielanalyse

    Beispielanalyse von Lese- und Schreibvorgängen in Java SpringÜbergeordnetes Verzeichnis

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring2.2 Dienst

    2.3 Repository

    🎜🎜🎜🎜🎜🎜 🎜2.4 Konfiguration🎜 🎜🎜🎜🎜🎜🎜🎜2,5 Komponente🎜🎜🎜 🎜🎜🎜🎜🎜2.6 Warum gibt es fünf Hauptkategorien von Anmerkungen? Dasselbe . 🎜🎜🎜🎜🎜🎜🎜🎜Anhand der beiden Klassenanmerkungen können wir deutlich erkennen, dass die anderen vier Annotationen alle Methoden der Component-Annotation einführen, was bedeutet, dass Component der Vater der anderen vier Klassenannotationen ist. Was macht Component also? Es ist einfach nicht einfach, es beim Kommentieren in die anderen vier Kategorien einzuordnen~🎜🎜2.7 Warum ist die Standard-ID ein kleiner Buckel? Wir verwenden die globale Suche:🎜🎜

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    AnnotationBeanNameGenerator finden:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Test:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    2.8 Bean-Annotationen verwenden

    Bean-Annotation ist eine Methodenannotation. Wenn sie für eine Methode verwendet wird, wird sie zurückgegeben Das Objekt wird ebenfalls von Spring injiziert, muss jedoch mit fünf Haupttypen von Anmerkungen verwendet werden (jeder reicht aus).

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    id ist der Methodenname. 2.8.1 Bean-Umbenennung verliert seine Wirkung, was bedeutet, dass nur der geänderte Name als ID verwendet werden kann.

    Bean-Objekte abrufen

    Das Abrufen von Bean-Objekten wird auch als Objektinjektion bezeichnet. Es gibt drei Methoden:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    • Attribute-Injektion

    • Beispielanalyse von Lese- und Schreibvorgängen in Java SpringKonstruktor-Injektion
    • Setter-Injektion

    1. Eigenschaftsinjektion

    1.1 AutowiredBeispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Java Spring Lese- und Speicherinstanzanalyse

    Beispielanalyse von Lese- und Schreibvorgängen in Java SpringJava Spring Lese- und Speicherinstanzanalyse

    Java Spring Reading and Storage Instance Analysis注意:当使用name属性重命名后,原本的方法名将失去作用,也就是说只能使用那么修改后的名字作为id了。

    获取bean对象

    获取bean对象也叫对象注入,其有以下3种方法:

    • 属性注入

    • 构造方法注入

    • Setter注入

    1.属性注入

    1.1 Autowired

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    虽然现在看起来没什么问题,但是当我们对同一类型的对象进行了多次注入:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    此时就需要精准定位所选择的对象了,需要类型+名字:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    1.2Resource

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    1.3二者区别

    Resource有个name 属性,可以指定注入bean的名称

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    但Autowired也有个搭配注解,@Qualifier,一样可以指定选择的bean对象,所以二者之间嘛,我觉得打成平手

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    ps:Autowired注解一开始是要进行查询所有类型为所需注入的对象的类型,但Autowired一次只能注入一个对象,因此当统一类型的对象注入多次后会报错。而Qualifier注解本质上是对其所查询的结果进行筛选。

    2.构造方法注入

    还是使用Autowired注解:

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    ps

    Obwohl es jetzt kein Problem zu geben scheint, wenn wir mehrere Operationen an denselben Objekttypen ausführen, Injektionen:

    Beispielanalyse von Lese- und Schreibvorgängen in Java SpringJava Spring Lese- und Speicherinstanzanalyse

    🎜Java Spring-Lese- und Speicherinstanzanalyse🎜🎜Sie benötigen es zu diesem Zeitpunkt, um das genau zu lokalisieren Ausgewähltes Objekt, Sie benötigen Typ+Name:🎜🎜 Java Spring-Lese- und Speicherinstanzanalyse🎜🎜1.2Resource🎜🎜Java Spring Lese- und Speicherinstanzanalyse🎜🎜1.3 Der Unterschied zwischen den beiden🎜🎜Ressource hat ein Namensattribut, das den Namen der injizierten Bean angeben kann🎜🎜Java Spring Reading and Storage Instance Analysis🎜🎜Aber Autowired hat auch eine passende Annotation, @Qualifier, die auch das ausgewählte Bean-Objekt angeben kann, also Ich denke, es ist ein Gleichstand zwischen den beiden " />🎜🎜ps: Die Autowired-Annotation fragt zunächst alle Typen nach den Objekttypen ab, die injiziert werden müssen, Autowired kann jedoch jeweils nur ein Objekt injizieren, sodass bei einem einheitlichen Typ ein Fehler auftritt wird gemeldet, nachdem das Objekt mehrmals injiziert wurde. Die Qualifier-Annotation filtert im Wesentlichen die Ergebnisse ihrer Abfrage. 🎜

    2. Konstruktormethodeninjektion

    🎜🎜Verwenden Sie weiterhin Autowired-Annotationen: 🎜🎜🎜Java Spring Lese- und Speicherinstanzanalyse🎜🎜 Java Spring Reading and Storage Instance Analysis“ />🎜🎜<code>ps</code>: Wenn es nur einen Konstruktor gibt, kann Autowired weggelassen werden🎜🎜aber es kann nicht weggelassen werden, wenn es mehr als zwei gibt🎜🎜🎜🎜<p><img src=

    Setter-Injektion

    oder über Autowired

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    ResourceSetter-Injection wird ebenfalls unterstützt.

    Klassische Interviewfragen

    Was ist der Unterschied zwischen Attributinjektion, Konstruktorinjektion und Setterinjektion?

    Beispielanalyse von Lese- und Schreibvorgängen in Java Spring

    Das obige ist der detaillierte Inhalt vonBeispielanalyse von Lese- und Schreibvorgängen in Java Spring. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen