contenido
Prefacio:
El artículo anterior describió brevemente el uso básico del marco springboot.Este artículo analiza brevemente los principios subyacentes y el mecanismo operativo de springboot.
Notas del video del curso: https://www.bilibili.com/video/BV1PE411i7CV
1. Análisis de la estructura del proyecto
El proyecto básico se crea a través de los pasos anteriores. Los siguientes archivos se generan automáticamente.
1. La clase de inicio principal del programa.
2. Un archivo de configuración application.properties
3. Una clase de prueba
4. Un pom.xml
análisis pom.xml
Abra pom.xml y analice las dependencias del proyecto Spring Boot:
- dependencia de los padres
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
- lanzador de escena web
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- pruebas unitarias springboot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 剔除依赖 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
- Complementos de empaquetado
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2. Análisis simple del principio de funcionamiento
Estudie el proyecto SpringBoot en el artículo anterior, cómo funciona, en primer lugar un proyecto Maven, generalmente comenzamos desde el archivo pom.xml.
1. Dependencia de los padres
Entre ellos, depende principalmente de un proyecto principal, ¡principalmente para administrar el filtrado de recursos y los complementos del proyecto!
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
Haga clic y descubra que también hay una dependencia principal
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
Aquí es donde realmente se gestionan todas las versiones de dependencia en la aplicación SpringBoot, el centro de control de versiones de SpringBoot;
En el futuro, cuando importemos dependencias, no necesitaremos escribir la versión por defecto, pero si el paquete importado no está administrado en la dependencia, necesitaremos configurar manualmente la versión.
2. Arrancador de arranque por resorte
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
springboot-boot-starter-xxx: es el iniciador de escena de spring-boot
spring-boot-starter-web: Nos ayuda a importar los componentes de los que depende el módulo web para su funcionamiento normal;
SpringBoot extrae todos los escenarios funcionales y los convierte en iniciadores (starters) uno por uno. Solo necesitamos introducir estos iniciadores en el proyecto, y todas las dependencias relacionadas serán importadas. Podemos importar qué tipo de función queremos usar. La escena lanzador servirá. Por supuesto, también podemos personalizar nosotros mismos el motor de arranque.
3. Clase de inicio principal
Después de analizar pom.xml, echemos un vistazo a esta clase de inicio
Clase de inicio principal predeterminada
//@SpringBootApplication 来标注一个主程序类
//说明这是一个Spring Boot应用
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
//以为是启动了一个方法,没想到启动了一个服务
SpringApplication.run(SpringbootApplication.class, args);
}
}
De hecho, una clase de inicio simple no es simple. Sus anotaciones harán muchas cosas. No realizaremos una investigación profunda aquí. Después de todo, la comprensión profunda del mecanismo operativo y el principio de springboot no es el objetivo principal de nuestro Actualmente estamos El objetivo es usar Springboot para construir el proyecto. Así que es básicamente suficiente para aprender aquí.
4. Análisis de proceso del método de ejecución
Pegue un diagrama de análisis de proceso descrito en el curso Mad God
(la imagen proviene de la cuenta pública: Mad God Says)
Referencias
Blog de referencia:
https://blog.csdn.net/cowbin2012/article/details/88861160
https://www.cnblogs.com/shamo89/p/8184960.html
https://www.jianshu.com/p/ef6f0c0de38f
https://www.cnblogs.com/jstarseven/p/11087157.html
https://www.cnblogs.com/gslblog/p/7986279.html
Vídeo de referencia:
https://www.bilibili.com/video/BV1PE411i7CV
https://www.bilibili.com/video/av838087622/