Serie Spring Boot (1) ---- Introducción detallada a Spring Boot

Introducción a Spring Boot

  Spring BootSe utiliza para simplificar el Springdesarrollo 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, SpringBoonos ha traído una solución integral J2EE y SpringClouduna solución general distribuida . A partir de ese momento, podemos utilizar para SpringBootdesarrollar rápidamente proyectos basados ​​en el marco de Spring. Debido a SpringBootque existen muchas Starterdependencias 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 HTTPví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.

Inserte la descripción de la imagen aquí

  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.
Inserte la descripción de la imagen aquí

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 confcarpeta donde está instalado Maven , ábralo setting.xmly 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.
Inserte la descripción de la imagen aquí

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 packageejecutar el paquete:

Inserte la descripción de la imagen aquí
Espere el final de la operación, en el registro, como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
pegue el paquete jar empaquetado en el escritorio, luego abra la línea de comando y ejecute el comando para ejecutarlo. La
Inserte la descripción de la imagen aquí
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 Boottodas las versiones de dependencia en la aplicación;
Spring Bootel centro de arbitraje de versiones; en el futuro, importamos las dependencias por defecto sin escribir la versión; (las dependencias que no se dependenciesadministran 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;
  • @EnableAutoConfigurationDí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 por AutoConfigurationPackages.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;

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:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
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.factoriesobtiene los EnableAutoConfigurationvalores 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;

Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
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áticos js 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.

Supongo que te gusta

Origin blog.csdn.net/weixin_43844418/article/details/113923837
Recomendado
Clasificación