¡Unos minutos lo llevarán a comprender rápidamente el conocimiento teórico del marco SpringBoot!

1. ¿Qué es Spring Boot?

SpringBoot es en realidad un subproyecto de Spring. Simplifica la dificultad de desarrollo de Spring, descarta todos los archivos de configuración xml que se pueden descartar y proporciona varios iniciadores, lo que permite a los programadores comenzar más rápido y ahorrar tiempo de desarrollo.

2. Ventajas de Spring Boot

SpringBoot en realidad mejora y optimiza las deficiencias de Spring. Basado en la idea de que la convención es mejor que la configuración, los desarrolladores no tienen que alternar entre los archivos de configuración y la lógica comercial, y todos pueden dedicarse al código comercial lógico. escritura, que puede mejorar en gran medida la eficiencia del desarrollo, pero también acortar el ciclo del proyecto hasta cierto punto.

(1) Bloqueo de versión

Resuelve el problema de que Maven depende de versiones que son propensas a conflictos y recopila muchas versiones probadas y de uso común.

(2) Dependencia de inicio

Resuelve el problema de integrar varios paquetes jar al desarrollar una función y recopila paquetes jar de uso común.

(3) Configuración automática

Resuelve el problema de demasiados marcos integrados o archivos de configuración técnica y recopila todas las configuraciones predeterminadas acordadas.

(4) gato incorporado

A través del tomcat incorporado, el proyecto javaee se puede ejecutar directamente sin introducir un tomcat externo.

Resumen: Todo el mundo llamará a SpringBoot el andamiaje para proyectos de construcción. Lo más importante es ayudarnos a construir rápidamente un gran proyecto de Spring y reducir todos los archivos de configuración xml tanto como sea posible, para que podamos usarlo de inmediato y comenzar rápidamente, para que podamos preocuparnos más por el negocio que Archivos de configuración.

3. La forma de ejecutar el proyecto SpringBoot

(1) Use el complemento maven para comenzar

(2) Conviértalo en un paquete jar y comience a ejecutar

(3) Ejecute directamente el método principal para comenzar a ejecutar

4. Arrancador de arranque de SpringBoot

4.1 ¿Qué es un iniciador?

El starter starter puede integrar otras tecnologías a través del starter para proporcionar un entorno operativo y de desarrollo correspondiente.

Por ejemplo: spring-boot-starter-web se puede usar para el desarrollo web en el archivo pom. Además, hay redis, mybatis, etc.

4.2 El principio de ejecución del motor de arranque

(1) El proyecto SpringBoot escaneará el archivo Spring.factories en el paquete jar cuando se inicie.

(2)根据文件里面的配置去加载自动配置类,文件格式是key=value的形式,value里面定义了多个需要Spring加载的类。

(3)Spring会去加载这些自动配置类,Spring读取以后,就会创建这些类的对象,然后全部放到IOC容器里面,等到后面需要的时候直接从Spring容器里面获取就可以了。

4.3 SpringBoot中常用的启动器

(1)spring-boot-starter-web

(2)spring-boot-starter-jdbc

(3)spring-boot-starter-jpa

(4)spring-boot-starter-redis

(5)spring-boot-starter-test

...

5.SpringBoot运行原理

5.1 SpringApplication类作用及run()方法作用

(1)SpringApplication它整合所有其他框架的启动类,只需要运行这一个类,全部整合即可完成。

(2)调用run函数,将当前类的字节码传入,还有main方法的参数args传入。里面提到的字节码传入其实是为了将注解@SpringBootApplication进行传入。

(3)获取当前启动类的核心信息,创建IOC容器。

5.2 当前启动类@SpringBootApplication详细剖析

run函数传入的当前启动类字节码其实就是@SpringBootApplication,点开该注解的源码,能够看到里面包含了四大类注解:

(1)jdk原生注解

 @Target:声明当前注解的使用范围

 @Rerention:声明生命周期

@Documented:声明打包成doc文件的时候需要带着注解

@Inherited:声明是否子类会显示父类的注解

(2)@SpringBootConfiguration

 点开该注解的源码,会发现本质就是@Configuration,定义该类是个和xml配置文件一样的配置类。

Cuando menciona @Configuration, debe mencionar a su socio @bean Estas dos anotaciones se pueden usar juntas para crear una clase de configuración de Spring simple, que se puede usar para reemplazar el archivo de configuración xml correspondiente. Puede entenderse como la creación de un contenedor IOC.

(3) @ComponentScan

Esta anotación corresponde a @ComponentScan en el archivo de configuración de Spring, de hecho, escanea y carga automáticamente componentes o definiciones de beans que cumplen con los requisitos. Finalmente, estas definiciones de beans se cargan en el contenedor IOC.

Si es necesario, puede personalizar con precisión el alcance del análisis automático de @ComponentScan a través de paquetes base. Si no se especifica, el paquete y el subpaquete de la clase en la que se encuentra @ComponentScan se analizarán de forma predeterminada. Debe tenerse en cuenta que el inicio de SpringBoot se coloca mejor bajo el paquete raíz, porque basePackages no se especifica de manera predeterminada, por lo que se pueden escanear todos los paquetes bajo el paquete raíz.

(4) @EnableAutoConfiguration

(1) La esencia de @EnableAutoConfiguration es @Import, que utiliza la anotación @Import para cargar todas las definiciones de beans que cumplen las condiciones de configuración automática en el contenedor IOC. @EnableAutoConfiguration configurará automáticamente el proyecto en función de las dependencias de jar en el classpath.

(2) ¿Cómo completa SpringBoot la configuración automática?

Anotaciones para la configuración automática de SpringBoot, @EnableAutoConfiguration

Cuando lo use, agregue @SpringBootConfiguration a la clase de inicio. Esta anotación es una anotación compuesta, que contiene @EnableAutoConfiguration

Hay una anotación @Import en @EnableAutoConfiguration, que en realidad es la clave para completar la configuración automática

· @Import importa una clase AutoConfigurationImportSelector, que proporciona un método selectImports, que analiza los archivos spring.factories en todos los frascos importados. Configure automáticamente la clase key=value en el archivo de análisis, cree todas las clases en la lista y colóquelas en el contenedor Spring correspondiente.

6. Implementación en caliente de SpringBoot

Solo necesita introducir el iniciador spring-boot-starter-devtools para completar la implementación en caliente.

7. Archivos de configuración en SpringBoot

7.1 Dos categorías

aplicación.yml o aplicación.propiedades

bootstrap.yml o bootstrap.properties

7.2 Diferencias

(1) el arranque lo carga la clase ApplicationContext, que se carga primero que el archivo de configuración de la aplicación

(2) Las propiedades del archivo de arranque no se pueden modificar

(3) aplicación: configuración automática del proyecto Springboot

(4) arranque: al usar el centro de configuración de configuración de la nube, si necesita cargar las propiedades de configuración del centro de configuración de conexión, puede usar el arranque para completarlo.

Cargue algunos datos que no se pueden sobrescribir, cargue algunos datos cifrados o descifrados.

7.3 Formas de leer archivos de configuración

(1) Leer el archivo de configuración predeterminado

Necesita inyectar la clase Environment, use environment.getProperty (clave en propiedades), para que pueda obtener el valor correspondiente a la clave

@Value(${key.value}) leer directamente

(2) Leer el archivo de configuración personalizado

El sufijo del archivo de configuración personalizado debe ser .properties

        Escriba la clase java correspondiente al archivo de configuración personalizado y coloque anotaciones en la clase

        @ConfigurationProperties("prefijo")

        @PropertySource("archivo de configuración especificado")

        Escaneo del paquete @Component

El método de lectura es el mismo que para leer el archivo de configuración predeterminado

8.SpringBoot支持的日志文件

(1)log4j

(2)logback

(3)Java Utils logging

9.SpringBoot常用的注解

@SpringBootApplication:它封装了@SpringBootApplicationConfiguration、@EnableAutoConfiguration、@ComponentScan三个核心类,大大节省了程序员配置的时间,这也是SpringBoot的核心思想。

@MapperScan:这是spring-boot支持mybatis组件的一个注解,通过该注解指定mybatis接口类的路径,完成对mybaits接口的扫描。

@RestController:是@Controller和@ResponseBody的组合,如果在类上面添加了该注解,就不需要再添加@ResponseBody了。

@RequestMapping:在方法定义请求路径。

@GetMapping、@PostMapping、@PutMapping、@DeleteMapping:是配合上面的RequestMapping使用,统一成Rest风格的,可以指定更明确的路径。

@PathVaribale:路径变量注解,用{}来定义路径的变量名。

@Service:用来标注业务层注解。

@Component:和Spring的注解功能一样,注入到IOC容器里面。

@EnableScheduling:通过@Import将Spring调度框架的相关bean定义都加载到IOC容器。

Supongo que te gusta

Origin blog.csdn.net/lf21qp/article/details/131375082
Recomendado
Clasificación