Directorio de artículos
Introducción a Spring Boot
Spring Boot
Se utiliza para simplificar el Spring
desarrollo de aplicaciones, la convención es mayor que la configuración y lo complejo se simplifica; solo ejecutarlo puede crear una aplicación independiente a nivel de producto .
Con el advenimiento de la era Spring Family Bucket, SpringBoo
nos ha traído una solución integral J2EE y SpringCloud
una solución general distribuida . A partir de ese momento, podemos utilizar para SpringBoot
desarrollar rápidamente proyectos basados en el marco de Spring. Debido a SpringBoot
que existen muchas Starter
dependencias listas para usar , es muy conveniente para nosotros desarrollar código comercial sin prestar demasiada atención a la configuración de el marco, pero solo para el negocio .
Ventajas de SpringBoot
- Cree rápidamente proyectos independientes de Spring e intégrelos con los marcos principales
- Con el contenedor de Servlet incorporado, la aplicación no necesita estar marcada como un paquete WAR
- Arrancadores de dependencia automática y control de versiones
- Una gran cantidad de configuraciones automáticas para simplificar el desarrollo, y también puede modificar los valores predeterminados
- No es necesario configurar XML, sin generación de código, listo para usar
- Monitoreo de aplicaciones en tiempo de ejecución en un entorno de cuasi-producción
- Integración natural con la computación en la nube
Microservicio
Hablando de SpringBoot
, el servicio tendría que mencionar micro, el micro servicio es un estilo arquitectónico, se puede entender como un pequeño servicio , estos servicios por HTTP
vía de intercambio . Cada elemento funcional es, en última instancia, una unidad de software que se puede reemplazar y actualizar de forma independiente ; no existe una definición oficial de microservicios. Es difícil describir los microservicios directamente. Podemos entender qué son los microservicios al comparar las aplicaciones WEB tradicionales., La aplicación tradicional se convierte en una "Aplicación única": TODO EN UNO. Consulte la documentación del microservicio para obtener más detalles.
Las aplicaciones monolíticas son de ese tipo. El núcleo se divide en lógica empresarial, adaptadores y API o interfaces WEB a las que se accede a través de la interfaz de usuario. La lógica empresarial define los procesos empresariales, las reglas empresariales y las entidades de dominio. Los adaptadores incluyen componentes de acceso a la base de datos, componentes de mensajes e interfaces de acceso Todas estas cosas están integradas juntas, lo que parece muy poderoso, pero de hecho es muy complicado.
La arquitectura de microservicio tiene muchas ventajas importantes y resuelve el problema de la complejidad . Descompone una sola aplicación en un conjunto de servicios. Aunque la cantidad total de funcionalidad sigue siendo la misma, la aplicación se ha dividido en módulos o servicios administrables. Estos servicios definen límites claros de RPC o API controlados por mensajes. La arquitectura de microservicio fortalece el nivel de modularidad de la aplicación, que es difícil de lograr a través de una base de código monolítica. Por lo tanto, el desarrollo de microservicios es mucho más rápido y más fácil de entender y mantener.
Implementar una aplicación HelloWord
A continuación, primero comenzamos con una aplicación simple, y luego explicaré la configuración y el uso de SpringBoot basados en esta aplicación simple.
Descripción ambiental
- JDK1.8
- Por encima de SpringBoot1.7, uso SpringBoot2.4.3.
- Por encima de Maven3.3: estoy usando 3.6.3 aquí
- Idea utilizada por IDE
Después de instalar Maven, recuerde cambiar el JDK predeterminado de Maven a 1.8, es decir, en la conf
carpeta donde está instalado Maven , ábralo setting.xml
y cámbielo a la siguiente configuración
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
Darse cuenta de la función
Una función, el navegador envía una solicitud de saludo, el servidor acepta la solicitud y la procesa, y responde a la cadena HelloWorld
Pasos específicos
- Crear proyecto Maven
- Importar dependencias relacionadas con SpringBoot
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- 这个插件,可以将应用打包成一个可执行的jar包;-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- Escriba un programa principal; inicie la aplicación Spring Boot
/**
* @Author: zhang
* @Descripetion: @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
**/
@SpringBootApplication
@RestController
public class HelloWorldApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldApplication.class,args);
}
- Escribir controlador relacionado, servicio
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "helloWorld";
}
}
Una vez que el código esté escrito, ejecútelo directamente. Lo escuchó bien. No necesita hacer nada. Simplemente ejecútelo directamente. Después de ejecutarlo, puede acceder directamente a él en el navegador y encontrará el éxito.
SpringBoot simplifica la implementación
Es tan conveniente y simple desde la creación hasta la operación. Antes de continuar con el análisis y la explicación del código, me gustaría decir más, es decir, la implementación del paquete. Surgirán preguntas en este momento, oye, cuando lo acabo de crear, parece que Tomcat y similares no estaban instalados y configurados, y el paquete war no se abrió. ¿Por qué se ejecutó? Y mucho menos la implementación. El proyecto SpringBoot se puede escribir en un paquete jar, y luego el paquete jar se puede ejecutar directamente sin la necesidad de instalar el entorno operativo, y se puede iniciar el programa La portabilidad es muy fuerte. Podemos usar el comando Maven para empaquetar, o usar directamente Idea para empaquetar. El comando Maven se puede buscar directamente en línea. Aquí demuestro que es conveniente usar Idea para empaquetar. La operación específica es la siguiente. Hay en la Idea barra lateral Maven Projects
, haga clic para abrir y luego haga clic para package
ejecutar el paquete:
Espere el final de la operación, en el registro, como se muestra en la siguiente figura:
pegue el paquete jar empaquetado en el escritorio, luego abra la línea de comando y ejecute el comando para ejecutarlo. La
operación es exitosa, y luego puede acceder a él directamente en el navegador.
Hola mundo, exploración
Archivo POM
Proyecto padre
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/>
</parent>
Su proyecto padre es:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.3</version>
</parent>
Viene a administrar realmente Spring Boot
todas las versiones de dependencia en la aplicación;
Spring Boot
el centro de arbitraje de versiones; en el futuro, importamos las dependencias por defecto sin escribir la versión; (las dependencias que no se dependencies
administran en él, naturalmente, deben declarar el número de versión)
Lanzacohetes
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web:
spring-boot-starter
: Iniciador de escena de arranque de primavera; nos ayudó a importar los componentes de los que depende el módulo web para su funcionamiento normal;
Spring Boot extrae todos los escenarios funcionales y los hace uno por uno starters
(iniciadores) Todas las dependencias de estos escenarios relacionados con el iniciador deben importarse al proyecto. Importe el lanzador de cualquier escena para la función que desee utilizar. Para más detalles, puede ir a los documentos oficiales.
Clase de programa principal, clase de entrada principal
@SpringBootApplication
@RestController
public class HelloWorldApplication {
public static void main(String[] args) {
// Spring应用启动起来
SpringApplication.run(HelloWorldApplication.class,args);
}
@SpringBootApplication:
La marca de la aplicación Spring Boot en una determinada clase indica que esta clase es la clase de configuración principal de SpringBoot, y SpringBoot debe ejecutar el método principal de esta clase para iniciar la aplicación SpringBoot;
Podemos hacer clic en este comentario para verlo. " 按住Ctrl+左键
"
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {
@Filter(
type = FilterType.CUSTOM,
classes = {
TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {
AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
@SpringBootConfiguration:
Clase de configuración de Spring Boot ;
-
Marcado en una determinada clase, significa que se trata de una clase de configuración de Spring Boot;
-
Continúe haciendo clic en esta clase @SpringBootConfiguration:
@Configuratio
: Marque esta anotación en la clase de configuración;- Clase de configuración ----- archivo de configuración; la clase de configuración también es un componente en el contenedor ;
@Component
@EnableAutoConfiguration :
Encienda la función de configuración automática ;
- Lo que necesitamos configurar antes, Spring Boot nos ayuda a configurar automáticamente;
@EnableAutoConfiguration
Dígale a SpringBoot que active la función de configuración automática; para que la configuración automática pueda tener efecto; haga clic para ver
@AutoConfigurationPackage
@Import({
AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
@AutoConfigurationPackage
: Paquete de configuración automática. (Click para ver)@Import({Registrar.class})
- La anotación de nivel inferior de pring
@Import
, importa un componente en el contenedor; el componente importado está hecho porAutoConfigurationPackages.Registrar.class
;Escanee todos los componentes en el paquete de la clase de configuración principal (clase marcada por @SpringBootApplication) y todos los sub-paquetes a continuación en el contenedor Spring;
- La anotación de nivel inferior de pring
AutoConfigurationImportSelector
Importar componentes al contenedor ;
AutoConfigurationImportSelector
: Selector de qué componentes importar; Devolver todos los componentes que deben importarse en forma de nombres completos de clase; Estos componentes se agregarán al contenedor; Muchas clases de configuración automática se importarán al contenedor ( xxxAutoConfiguration
); es importar todos los componentes necesarios para esta escena en el contenedor y configurar estos componentes;
después de hacer clic en esta clase, busque el siguiente método y luego interrumpa la depuración. Puede ver muchos componentes en la consola:
Con la clase de configuración automática, no necesitamos escribir manualmente componentes funcionales de inyección de configuración, etc .;
Spring Boot META-INF/spring.factories
obtiene los EnableAutoConfiguration
valores especificados de la ruta de clases cuando se inicia e importa estos valores en el contenedor como una clase de autoconfiguración La clase de autoconfiguración entrará en vigencia y nos ayudará con el trabajo de autoconfiguración ;
En el pasado necesitábamos configurar las cosas por nosotros mismos, ahora la clase de configuración automática nos ayuda, la solución integrada general de J2EE y la configuración automática están disponibles spring-boot-autoconfigure-1.5.9.RELEASE.jar
;
Este es el final del análisis del programa helloworld, echemos un vistazo a cómo crear rápidamente un proyecto SpringBoot
Cree rápidamente un proyecto SpringBoot
Antes de crear un proyecto, primero creamos un proyecto Maven y luego importamos las dependencias Springboot relacionadas, pero de hecho, podemos usar Idea para crear un proyecto en idea, para ayudarnos a crear automáticamente el proyecto Springboot que necesitamos dependencias relacionadas.
IDEA: use Spring Initializer para crear rápidamente un proyecto
De esta forma, se completa la creación rápida de nuestro springboot. Puede ir y echar un vistazo al archivo pom.xml, el contenido se ha corregido automáticamente para nosotros.
Lo que quiero explicar aquí es que bajo los recursos del proyecto creado por idea, se crearán automáticamente tres cosas para nosotros, lo explicaré aquí.
static
: Guarde todos los recursos estáticosjs css images
;;templates
: Guarde todas las páginas de plantilla; (el paquete jar predeterminado de Spring Boot usa Tomcat incorporado y las páginas JSP no son compatibles de forma predeterminada); se puede usar el motor de plantilla (freemarker、thymeleaf
);application.properties
: Archivo de configuración de la aplicación Spring Boot; se pueden modificar algunas configuraciones predeterminadas;
Con esto concluye la introducción de springboot.