国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java JavaErste Schritte Was ist das Prinzip des Spring Boot?

Was ist das Prinzip des Spring Boot?

Jun 16, 2020 pm 02:14 PM
spring boot

Was ist das Prinzip des Spring Boot?

Was ist das Prinzip von Spring Boot:

1. Einführung in den Inhalt

Einführung von Spring Boot durch ?Spring Boot Experience“. " Was kann getan werden? In diesem Artikel werden haupts?chlich die grundlegenden Implementierungsideen seiner verschiedenen Funktionspunkte analysiert, um ein umfassendes rationales Verst?ndnis von Spring Boot zu erhalten.

  • Abh?ngigkeitsverwaltung: Spring Boot hat viele Starter durchgeführt, und Starter sind nur ein Einstieg, der uns beim Importieren von Abh?ngigkeiten hilft und das Projektabh?ngigkeitsmanagement vereinfacht

  • Automatische Konfiguration: Spring Boot bietet Konfigurationsklassen für viele g?ngige Komponenten und Frameworks basierend auf der Spring-Code-Konfiguration und vereinfacht dadurch die Projektkonfiguration

  • Eingebetteter Container: ein gemeinsamer Webcontainer, der Java integriert und vereinfacht Entwicklungsumgebungskonstruktion und ist die Grundlage für das Packen von Plug-Ins zum Packen von Webanwendungen in ausführbare Dateien

  • Maven-Plug-In: Wird zum Packen von JAR-Dateien oder WAR-Dateien verwendet, die direkt ausgeführt werden k?nnen , sofort einsatzbereit für das Projekt Bieten Sie Unterstützung und natürlich gibt es einige kleine Funktionen, die die Entwicklung unterstützen

  • Hei?start: Reduzieren Sie die Anzahl der wiederholten Starts von Containern w?hrend des Entwicklungsprozesses und die Entwicklungseffizienz verbessern

  • Anwendungsüberwachung: Bietet grundlegende Dienste für Anwendungsprüfung, Gesundheitsüberwachung und Metrikdatenerfassung

  • CLI (Befehlszeilentool ): Für Rapid Prototyping besteht keine Notwendigkeit,

2. Starter-Abh?ngigkeiten zu verwenden: starter

In einem regul?ren Maven-Projekt, wenn Sie ein bestimmtes Framework verwenden m?chten oder Komponente müssen Sie eine gro?e Anzahl von Abh?ngigkeiten importieren und auf die Versionsübereinstimmung der Abh?ngigkeiten usw. achten. Das Problem besteht darin, dass Spring Boot eine gro?e Anzahl von Startern bereitstellt. Solche Starter verwenden die Abh?ngigkeitsübertragung von Maven, um uns beim Import zu helfen damit verbundene Abh?ngigkeiten. Die folgende POM-Datei fügt beispielsweise webbezogene Abh?ngigkeiten hinzu, einschlie?lich Spring Web, Spring MVC usw.:

    .......    <dependencies>
        <!--Web應(yīng)用程序的典型依賴項-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

    </dependencies>
    .......

Prinzip: Wir haben gerade eine Abh?ngigkeit importiert, aber die Abh?ngigkeiten Verwenden Sie die Abh?ngigkeitsübertragung von Maven, um eine gro?e Anzahl von Paketen zu importieren, die in der Webentwicklung verwendet werden. Wenn wir die Datei dekomprimieren, finden wir das JAR Tats?chlich enth?lt sie keinen wesentlichen Inhalt, da es sich nur um ein POM-Projekt handelt. Der wesentliche Inhalt befindet sich in der Datei Das wird von mavne erstellt. Beim Herunterladen der JAR-Datei werden viele Abh?ngigkeiten in der Datei deklariert, z. B. spring-webmvc, spring-web usw.

Kurz gesagt: Wenn unser Projekt von einem bestimmten Starter abh?ngt, h?ngt der Starter von vielen anderen Abh?ngigkeiten ab, und die Abh?ngigkeitsübertragung von Maven fügt die Abh?ngigkeiten, von denen der Starter abh?ngt, zu unserem Projekt hinzu. Der Starter ist lediglich ein Importvermittler für unsere Projektabh?ngigkeiten.

Informationen zur Abh?ngigkeitsübertragung von Maven finden Sie in den entsprechenden Informationen. Eine kurze Beschreibung lautet wie folgt:

Projekt A h?ngt von B ab und B h?ngt von C ab. Projekt A muss nur deklarieren, dass es von B abh?ngt, aber nicht, dass es von C abh?ngt. Maven verwaltet automatisch die Bereitstellung dieser Abh?ngigkeit.

2. Automatische Konfiguration: AutoConfiguration

Spring Boot konfiguriert automatisch verwandte Komponenten oder Frameworks unter Verwendung von Standardwerten, wodurch die Konfigurationsdateien des Projekts erheblich reduziert werden und Einen eigenen Verarbeitungsablauf basierend auf der Codekonfiguration hinzugefügt. Der folgende Inhalt stellt zun?chst kurz die codebasierte Konfiguration von Spring vor und stellt dann vor, was Spring Boot tut.

(1) Spring-Code-basierte Konfiguration

Vor Spring 3 war die Verwendung des Spring-Kontexts im Allgemeinen wie folgt:

Spring-Konfigurationsdatei

<!-- 數(shù)據(jù)源 -->
 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
 <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
 <property name="username" value="hr" />
 <property name="password" value="hr" /></bean>
 <!--組件掃描-->
 <context:component-scan base-package="com.demo.spring.sample.step03.?rvic?" />

Gesch?ftscode

package com.demo.spring.sample.step03.service.impl;.......@Service("userService")
public class UserService implements IUserService {   
   @Autowired
   private IUserDAO userDAO = null;
}

Spring-Kontext erstellen

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

Zusammenfassung:

Weisen Sie Spring über den Komponentenscan an, den Klassenpfad nach @Component, @Repository, @Service, @ zu durchsuchen. Für mit Controller annotierte Klassen instanziiert Spring diese Klassen und registriert die Instanzen im Spring-Kontext. Allerdings werden Beans von Drittanbietern wie Datenquellen und Eigenschaftendateien weiterhin mithilfe von XML-Dateien konfiguriert ist immer noch nicht machbar. Ja, wenn es notwendig ist, ist es relativ mühsam.

Die Verwendung von XML-Konfigurationsdateien hat Vor- und Nachteile. Einer der Nachteile besteht darin, dass Sie den Bean-Instanziierungsprozess nicht zu sehr anpassen k?nnen. Für die obige Datenquelle müssen Sie sie beispielsweise nur instanziieren Um den JDBC-Treiber von Oracle im Klassenpfad zu haben, ist dies nicht m?glich. Ein weiterer Nachteil besteht darin, dass die Codelogik verstreut ist, da ein Teil der Logik natürlich in XML konfiguriert ist. Der Vorteil besteht darin, dass die Konfiguration zentralisiert ist und es bequem ist, Konfigurationen zu wechseln.

Nach Spring 3 k?nnen Sie den Spring-Container auf folgende Weise verwenden:

Spring-Konfigurationsklasse

@Configuration // 表明當(dāng)前類提供Spring配置文件的作用,Spring上下文會從當(dāng)前類的注解中提取配置信息
@ComponentScan(basePackages = "com.demo.spring.sample.step08") 
// 開啟組件掃描
public class AppConfig {
    @Bean // 表示這個方法實例化一個bean,id=dataSource
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(password);
        return dataSource;
    }}

Gesch?ftscode

package com.demo.spring.sample.step03.service.impl;.......@Service("userService")
public class UserService implements IUserService {   
   @Autowired
   private IUserDAO userDAO = null;
}

Spring-Kontext erstellen

ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

Zusammenfassung:

XML-basierte Konfiguration wird beim Erstellen eines Spring-Kontexts nicht mehr verwendet. Die Konfigurationsdatei verschwindet und wird durch die AppConfig-Klasse ersetzt. und diese Klasse kann über @Bean-annotierte Methoden verfügen. Der Container ruft diese Methoden automatisch auf, um die Bean zu instanziieren.

(2), die automatische Konfiguration von Spring Boot

Spring Boot hat dazu beigetragen, eine gro?e Anzahl von Klassen zu schreiben, die mit @Configuration annotiert sind. Jede Klasse stellt eine Komponenten- oder Framework-Konfiguration bereit, z. B. die statische innere Klasse DataSourceConfiguration Dbcp2 in .java, das die Konfiguration von DBCP-Datenquellen erm?glicht

//DBCP 數(shù)據(jù)源配置.
@Configuration //這個注解在實際代碼中沒有加,當(dāng)前類被其它配置類Import
@ConditionalOnClass(org.apache.commons.dbcp2.BasicDataSource.class)
@ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type",  matchIfMissing = true,havingValue = "org.apache.commons.dbcp2.BasicDataSource")
static class Dbcp2 {

   @Bean
   @ConfigurationProperties(prefix = "spring.datasource.dbcp2")
   public org.apache.commons.dbcp2.BasicDataSource dataSource(
         DataSourceProperties properties) {
      return createDataSource(properties,
            org.apache.commons.dbcp2.BasicDataSource.class);
   }

}

Zusammenfassung:

當(dāng)Spring Boot啟動的基本步驟走完后, 如果啟用了自動配置,Spring Boot會加載下的<\META-INF\spring.factories>文件中的內(nèi)容,該文件中定義了有關(guān)自動配置的信息,其中EnableAutoConfiguration對應(yīng)的每一個類中都加入了注解@Configuration,也就是說這樣的每一個類都相當(dāng)于Spring的一個或多個配置文件,而其中加注解@Bean的方法是bean的工廠方法,會由Spring上下文自動調(diào)用,并且將返回的對象注冊到上下文中。

spring.factories文件中自動配置類的部分內(nèi)容

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
......
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
......

(三)、如何覆蓋自動配置的屬性

Spring Boot的自動配置會采用大量的默認(rèn)值(約定由于配置),可以通過在類路徑下提供application.properties或者application.yml配置文件來覆蓋默認(rèn)值,當(dāng)然部分屬性值必須通過該配置文件來提供,比如如果要使用Spring Boot對數(shù)據(jù)源的自動配置,則在配置文件中必須提供jdbc的url,否則會拋出異常。

三、集成內(nèi)嵌容器 :main方法

Spring Boot支持的內(nèi)嵌容器Tomcat、Jetty、Undertow本身就支持在Java中內(nèi)嵌使用,因為這些容器本身就是使用Java編寫的,只不過Spring Boot在main方法的調(diào)用鏈中根據(jù)自動配置嵌入了這樣的容器。

不使用這樣的內(nèi)嵌容器也是可以的,在Maven中移除這樣的依賴就可以,當(dāng)然這個時候如果要通過Spring Boot使用Web相關(guān)框架,則需要打包為war包后獨立部署,或者在開發(fā)過程中使用IDE環(huán)境的開發(fā)部署功能。

不使用內(nèi)嵌容器的Web應(yīng)用在打包時需要對工程進(jìn)行一定的修改。

四、打包可運行文件 :maven-plugin

Maven使用的默認(rèn)打包工具支持打包jar文件或者war文件,但是打包后的jar文件中不能再嵌入jar文件,而打包后的war文件不能直接運行,為了把工程所有文件打包為一個可直接運行的jar文件或war文件,spring提供了一個maven插件來解決這樣的問題。當(dāng)然這個插件還提諸如spring-boot:run這樣的開發(fā)功能

五、熱啟動 :devtools

在開發(fā)過程中,當(dāng)完成一個功能單元后,我們會啟動程序查看運行效果,如果代碼需要再次修改,則修改后需要關(guān)掉程序,然后重啟程序,這個過程不斷迭代,從而完成代碼的編寫、調(diào)試。

Spring Boot 熱啟動通過重寫容器的類加載器,完成程序的部分重啟,從而簡化、加速程序的調(diào)試過程。spring-boot-devtools通過兩個類加載器分別加載依賴庫和項目代碼,當(dāng)spring-boot-devtools發(fā)現(xiàn)項目的編譯輸出路徑下有變化時,通過其中的一個類加載器重新加載所有的項目自有代碼,從而完成熱啟動。這樣的熱啟動比冷啟動(關(guān)閉、重啟)要快很多,到底快多少取決于項目自有代碼的數(shù)量。

和熱啟動對應(yīng)的還有一個熱替換,是指單獨地替換被修改的某一個class到j(luò)vm中,甚至可以單獨替換class的某個方法,這種方式比熱啟動要快,通常使用 JavaAgent 攔截默認(rèn)加載器的行為來實現(xiàn),spring有個獨立的項目Spring Loaded就是這么做的,但是項目已經(jīng)被移到了 attic 了,也就是被Spring束之高閣,所以不建議使用。

六、應(yīng)用監(jiān)控:actuator

如果類路徑中有actuator這個組件的話,Spring Boot的自動配置會自動創(chuàng)建一些端點(端點:遵循Restful設(shè)計風(fēng)格的資源,對應(yīng)于Controller的某一個處理請求的方法),這些端點接受請求后返回有關(guān)應(yīng)用的相關(guān)信息,比如:健康信息、線程信息等。返回的是json格式的數(shù)據(jù),而使用 Spring Boot Admin 可以實現(xiàn)這些 JSON 數(shù)據(jù)的視圖展現(xiàn),當(dāng)然也可以為其他應(yīng)用監(jiān)控系統(tǒng)監(jiān)控當(dāng)前系統(tǒng)提供服務(wù)。

七、問題:

為什么pom文件中要繼承spring-boot-starter-parent?

spring-boot-starter-parent是spring-boot提供的一個pom,在該pom中定義了很多屬性,比如:java源文件的字符編碼,編譯級別等,還有依賴管理、資源定義的相關(guān)pom配置,項目的pom如果繼承starter-parent,可以減少相關(guān)配置

推薦教程: 《java教程

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des Spring Boot?. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Hei?e Themen

PHP-Tutorial
1502
276
So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen So verwenden Sie Spring Boot zum Erstellen von Big-Data-Verarbeitungsanwendungen Jun 23, 2023 am 09:07 AM

Mit dem Aufkommen des Big-Data-Zeitalters beginnen immer mehr Unternehmen, den Wert von Big Data zu verstehen, zu erkennen und ihn auf das Gesch?ft anzuwenden. Das damit verbundene Problem besteht darin, mit diesem gro?en Datenfluss umzugehen. In diesem Fall sind Big-Data-Verarbeitungsanwendungen zu etwas geworden, das jedes Unternehmen in Betracht ziehen muss. Für Entwickler ist auch die Verwendung von SpringBoot zum Erstellen einer effizienten Big-Data-Verarbeitungsanwendung ein sehr wichtiges Thema. SpringBoot ist ein sehr beliebtes Java-Framework, das dies erm?glicht

Erstellen Sie Desktop-Anwendungen mit Spring Boot und JavaFX Erstellen Sie Desktop-Anwendungen mit Spring Boot und JavaFX Jun 22, 2023 am 10:55 AM

Da sich die Technologie st?ndig weiterentwickelt, k?nnen wir nun verschiedene Technologien zum Erstellen von Desktop-Anwendungen verwenden. SpringBoot und JavaFX geh?ren mittlerweile zu den beliebtesten Optionen. Dieser Artikel konzentriert sich auf die Verwendung dieser beiden Frameworks zum Erstellen einer funktionsreichen Desktop-Anwendung. 1. Einführung in SpringBoot und JavaFXSpringBoot ist ein schnelles Entwicklungsframework, das auf dem Spring-Framework basiert. Es hilft Entwicklern, schnell Webanwendungen zu erstellen und gleichzeitig eine Reihe von bereitzustellen

Verwendung von WebSocket in Spring Boot zur Implementierung von Push- und Benachrichtigungsfunktionen Verwendung von WebSocket in Spring Boot zur Implementierung von Push- und Benachrichtigungsfunktionen Jun 23, 2023 am 11:47 AM

In der modernen Webanwendungsentwicklung ist WebSocket eine g?ngige Technologie für sofortige Kommunikation und Echtzeit-Datenübertragung. Das SpringBoot-Framework bietet Unterstützung für integriertes WebSocket, was es für Entwickler sehr bequem macht, Push- und Benachrichtigungsfunktionen zu implementieren. In diesem Artikel wird die Verwendung von WebSocket zum Implementieren von Push- und Benachrichtigungsfunktionen in SpringBoot vorgestellt und die Implementierung eines einfachen Echtzeit-Online-Chatrooms demonstriert. Erstellen Sie ein SpringBoot-Projekt. Zuerst müssen wir ein

Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Spring Boot+MyBatis+Atomikos+MySQL (mit Quellcode) Aug 15, 2023 pm 04:12 PM

In tats?chlichen Projekten versuchen wir, verteilte Transaktionen zu vermeiden. Manchmal ist es jedoch wirklich notwendig, einige Dienste aufzuteilen, was zu Problemen bei verteilten Transaktionen führt. Gleichzeitig werden in Vorstellungsgespr?chen auch verteilte Transaktionen auf dem Markt gefragt. Sie k?nnen diesen Fall üben und im Vorstellungsgespr?ch über 123 sprechen.

So verwenden Sie Spring Boot zum Erstellen von Blockchain-Anwendungen und Smart Contracts So verwenden Sie Spring Boot zum Erstellen von Blockchain-Anwendungen und Smart Contracts Jun 22, 2023 am 09:33 AM

Mit dem Aufstieg digitaler W?hrungen wie Bitcoin ist die Blockchain-Technologie nach und nach zu einem hei?en Thema geworden. Smart Contracts k?nnen als wichtiger Bestandteil der Blockchain-Technologie angesehen werden. SpringBoot kann als beliebtes Java-Backend-Entwicklungsframework auch zum Erstellen von Blockchain-Anwendungen und Smart Contracts verwendet werden. In diesem Artikel erfahren Sie, wie Sie mit SpringBoot Anwendungen und Smart Contracts auf Basis der Blockchain-Technologie erstellen. 1. SpringBoot und Blockchain Zun?chst müssen wir einige grundlegende Konzepte im Zusammenhang mit Blockchain verstehen. Blockchain

Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Erstellen Sie ein ESB-System mit Spring Boot und Apache ServiceMix Jun 22, 2023 pm 12:30 PM

Da moderne Unternehmen immer mehr auf eine Vielzahl unterschiedlicher Anwendungen und Systeme angewiesen sind, wird die Unternehmensintegration noch wichtiger. Enterprise Service Bus (ESB) ist ein Integrationsarchitekturmodell, das verschiedene Systeme und Anwendungen miteinander verbindet, um gemeinsame Datenaustausch- und Nachrichtenroutingdienste bereitzustellen und eine Anwendungsintegration auf Unternehmensebene zu erreichen. Mit SpringBoot und ApacheServiceMix k?nnen wir ganz einfach ein ESB-System erstellen. In diesem Artikel wird die Implementierung vorgestellt. SpringBoot und A

Methoden zur Aufgabenplanung und geplanten Aufgabenimplementierung von Spring Boot Methoden zur Aufgabenplanung und geplanten Aufgabenimplementierung von Spring Boot Jun 22, 2023 pm 11:58 PM

SpringBoot ist ein sehr beliebtes Java-Entwicklungsframework. Es bietet nicht nur den Vorteil einer schnellen Entwicklung, sondern verfügt auch über viele integrierte praktische Funktionen. Zu den h?ufig verwendeten Funktionen z?hlen unter anderem die Aufgabenplanung und geplante Aufgaben. In diesem Artikel werden die Aufgabenplanungs- und Timing-Task-Implementierungsmethoden von SpringBoot untersucht. 1. Einführung in die SpringBoot-Aufgabenplanung Die SpringBoot-Aufgabenplanung (TaskScheduling) bezieht sich auf die Ausführung einiger spezieller Aufgaben zu einem bestimmten Zeitpunkt oder unter bestimmten Bedingungen.

Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Erreichen Sie mehrsprachige Unterstützung und internationale Anwendungen durch Spring Boot Jun 23, 2023 am 09:09 AM

Mit der Entwicklung der Globalisierung müssen immer mehr Websites und Anwendungen mehrsprachige Unterstützung und Internationalisierungsfunktionen bieten. Für Entwickler ist die Implementierung dieser Funktionen keine leichte Aufgabe, da sie die Berücksichtigung vieler Aspekte erfordert, wie z. B. Sprachübersetzung, Datums-, Zeit- und W?hrungsformate usw. Mithilfe des SpringBoot-Frameworks k?nnen wir jedoch problemlos mehrsprachige Unterstützung und internationale Anwendungen implementieren. Lassen Sie uns zun?chst die von SpringBoot bereitgestellte LocaleResolver-Schnittstelle verstehen. Ort

See all articles