1. Pessimistische Sperre im Ruhezustand und optimistische Sperre andere Benutzer können Änderungen vornehmen. Vorteile: Die Konsistenz der Daten bleibt sehr gut erhalten. Nachteile: Es ist nicht für den gleichzeitigen Zugriff mehrerer Benutzer geeignet. Wenn eine gesperrte Ressource nicht freigegeben wird, wird die Ressource niemals von anderen Benutzern geändert, was leicht zu unbestimmten Wartezeiten führen kann.
Optimistische Sperre im Ruhezustand: Wenn die Daten geändert werden, werden die Daten mit der Version oder dem Zeitstempel verglichen, um festzustellen, ob die Daten konsistent sind, um eine Sperre zu erreichen. Die Vorteile sind relativ gut.2. Drei Zustände in den Ruhezustand versetzen
Temporärer Zustand: Das neue Objekt wurde noch nicht beibehalten und befindet sich noch nicht in der Sitzung. Persistenter Zustand: wurde beibehalten und dem Sitzungscache hinzugefügt. Objekte in diesem Zustand werden aufgerufen persistentes Objekt;Freier Zustand: Das persistente Objekt ist vom Sitzungsobjekt getrennt. Beispielsweise Objekte, deren Sitzungscache geleert wurde. Features: Bereits persistiert, aber nicht im Sitzungscache. Objekte in diesem Zustand werden als freie Objekte bezeichnet , und hohe Entwicklungsarbeitsbelastung. Die meisten von ihnen schreiben ihr eigenes SQL und viele Konfigurationsdateien 4. Lassen Sie uns über den Mybatis-Verbindungspool sprechen. Es gibt drei Arten von Pools: native, c3p0 und dbcp. Die DataSource-Schnittstelle wird über den Factory-Modus erstellt PooledDataSource (Datenquelle mit Verbindungspool).
Nehmen Sie als Beispiel: Sie benötigen ein Objekt, um eine Verbindung zur Datenbank herzustellen .Connection-Verbindungsobjekt beim Ausführen der SQL-Anweisung: Die PooledDataSource-Datenquelle umschließt das Connection-Pool-Objekt in einem PooledConnection-Objekt. MyBatis unterteilt den Verbindungspool im Verbindungspool in zwei Zustände: Ruhezustand (Leerlauf) und Aktivzustand (Aktiv). PooledConnection-Objekte werden in zwei Listensammlungen, „idleConnections“ und „activeConnections“, im PoolState-Container gespeichert: idle(ruhezustand) Zustand , wird das PooledConnection-Objekt in der Sammlung „idleConnections“ platziert und gibt die derzeit inaktive PooledConnection-Sammlung an, die nicht verwendet wird. Wenn die Methode „getConnection()“ von PooledDataSource aufgerufen wird, wird das PooledConnection-Objekt zuerst aus dieser Sammlung entnommen. Wenn ein java.sql.Connection-Objekt aufgebraucht ist, verpackt MyBatis es in ein PooledConnection-Objekt und fügt es in diese Sammlung ein. Im aktiven Zustand wird das PooledConnection-Objekt in der ArrayList mit dem Namen activeConnections platziert, die die aktuell verwendete PooledConnection-Sammlung darstellt. Wenn die getConnection()-Methode von PooledDataSource aufgerufen wird, wird das PooledConnection-Objekt zuerst aus der emptyConnections-Sammlung übernommen. Wenn nicht, prüfen Sie, ob die Sammlung voll ist. Wenn nicht, erstellt PooledDataSource eine PooledConnection, fügt sie dieser Sammlung hinzu und gibt sie zurück. (Empfohlenes Video-Tutorial:Java-Kurs.) 5 Prinzip
DispatcherServlet ruft das HandlerMapping-Prozessorzuordnungsverwaltungsobjekt auf, um den Handler-Prozessor abzurufen Handler und HttpMessageConveter konvertieren die Anforderungsinformationen in das angegebene Antwortobjekt.Füllen Sie mit dem Adapter die Anforderungsparameter in den Handler, und Spring beginnt mit der Ausführung des Handlers (Controllers), um Datenkonvertierung, Datenüberprüfung und Daten durchzuführen Formatierungsvorgänge
Nachdem der Handler ausgeführt wurde, wird ein ModelAndView-Objekt an das DispatcherServlet zurückgegeben. Wählen Sie einen geeigneten ViewResolver-Ansichtsparser basierend auf dem zurückgegebenen ModelAndView und suchen Sie die von ModelAndView angegebene Ansicht die Seite anzeigenDas obige ist der detaillierte Inhalt vonJava-Interviewfragen, zusammengefasst aus langjähriger Entwicklungserfahrung - (7). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!