notas de estudio independiente 1- aplicación de Primavera

aplicaciones de primavera independientes de entendimiento

SpringBoot programación ideas en un libro, este capítulo se centra en la línea de comandos SpringBoot proyecto y modo de creación de interfaz gráfica, SpringBoot proyecto, paquete frasco, paquetes y otra estructura de directorios de la guerra, y la más importante es cómo el paquete frasco de aplicación SpringBoot y la guerra modo paquete operación.

Creación de proyectos SpringBoot

En él se describe cómo crear una interfaz gráfica springboot web oficial del proyecto, así como la primavera hasta el comando de línea de comandos para crear una forma de crear un proyecto Maven. Y el uso de manera Maven para compilar y ejecutar el proyecto (en lugar de frasco o paquete de guerra bolsa).

línea de comandos para crear

Por el plugin Arquetipo Maven (una herramienta de creación de plantillas de proyecto Maven) para crear.

1. Crear un mvn básica del proyecto

Para crear un proyecto básico utilizando la plantilla MVN MVN base por defecto.

mvn archetype:generate -DgroupId=cn.xxx -DartifactId=springboot-project -Dpackage=cn.xxx.springboot.project -Dversion=1.0.0 -DinteractiveMode=false 

groupId : Insignia del desarrollo de equipo de uniforme, en general, el uso de dos secciones, la primera sección representa el dominio, similar a la org, com, CN, etc., el segundo párrafo en nombre de la razón social o nombre del equipo.

artifactId : puede entenderse simplemente como el nombre real del proyecto.

Paquete : El nombre predeterminado paquete de programas de generación, por lo general una combinación de GroupId + artifactId.

Versión : La identificación número de versión.

interactiveMode : si la creación interactiva.

2. Añadir SpringBoot dependientes

En el proyecto pom.xml para agregar la primavera de arranque Web-dependiente y archivo POM Padres Primavera de arranque.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--添加SpringBoot Parent POM-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.RELEASE</version>
  </parent>

  <groupId>cn.xxx</groupId>
  <artifactId>springboot-project</artifactId>
  <packaging>jar</packaging>
  <version>1.0.0</version>
  <name>springboot-project</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    
    <!--添加springboot web 依赖-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>2.2.0.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

3. Añadir el código de inicio

generada automáticamente APP.java clase de código de arranque complemento, haciendo clases de inicio.

@RestController
@SpringBootApplication //主要启动注解
public class App {
    
    @RequestMapping("/")
    public String index() {
        return "Welcome to my project!";
    }
    
    public static void main( String[] args ) {
        SpringApplication.run(App.class,args); //主要启动代码
    }
}

4. Inicio del proyecto

Se utiliza en la ruta del proyecto mvn spring-boot:runpara ejecutar este comando proyecto.

creación gráfica

Puede crear rápidamente proyecto de Primavera de arranque en la página web https://start.spring.io.

1. Generar el proyecto

Rellene el grupo de primera interfaz del sitio, artefacto, y agregar dependencias en el proyecto web construye.

2. Estructura del proyecto

src:

Almacenar código fuente, código fuente de prueba, archivos de recursos.

.gitignore:

Define el control de versiones Git lista de ignorados.

.mvn, mvnw, mvnw.cmd:

Maven forma de construcción sencilla, sin tener que instalar el sistema operativo en los binarios de antemano mavne.

.mvn/wrapperEl tarro se utiliza para descargar archivos binarios de oficial experto experto, propiedades en el archivo jar descarga falla, definir descarga url.

mvnw和mvnw.cmdMvn para descargar archivos binarios para el .mvn de arranque en el frasco con el guión, que corresponde Linux y Windows plataforma.

3. Inicio del proyecto

En la plataforma Linux a través del sh mvnw spring-boot:runcomando de Maven para descargar y ejecutar el proyecto.

NOTA : Este modo de arranque de arranque pertenece al entorno de desarrollo, el entorno de producción se inicia generalmente por el modo paquete jar / guerra.

Crear y ejecutar el paquete jar

Envasados ​​Plugin para agregar pom.xml

SpringBoot proyecto para construir un paquete jar ejecutable en la premisa de que es necesario agregar la primavera-boot-maven-plugin de la pom.xml en.

Nota : Los productos incluidos en la creación gráfica de este plugin, no hay necesidad de añadir.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.0.RELEASE</version>
  </parent>
  <groupId>cn.xxx</groupId>
  <artifactId>springboot-project</artifactId>
  <packaging>jar</packaging>
  <version>1.0.0</version>
  <name>springboot-project</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>2.2.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <!--添加SpringBoot的打包插件-->
  <build>
  	<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
     </plugins>
  </build>
  <!---->
</project>

Mvn la ejecución de comandos de paquete

Ejecutar la línea de comandos en la ruta del proyecto mvn packagede comandos.

Ejecutar paquete frasco

línea de comandos java -jar jar包路径para ejecutar este frasco paquete.

SpringBoot en tarro

estructura del paquete jar

Después de ejecutar el comando mvn paquete en el destino / directorio del proyecto será:

Nombre del proyecto - número de versión .jar y nombre de los proyectos - número de versión .jar.original dos archivos.

Nombre del proyecto - el número de versión .jar.original

Este archivo está empaquetado en el archivo de MVN frasco original,

estructura de ruta:

Ruta de clase / archivo de clase de almacenamiento se compila

/ META-INF almacenada la información de metadatos

Nombre del proyecto - versión .jar

Este archivo es el archivo original después del paquete frasco de MVN después del procesamiento, la introducción de un recurso dependiente de terceros.

estructura de ruta:

/ BOOT-INF / classes almacenados en el archivo de clase se compila

/ BOOT-INF / lib de almacenamiento paquete frasco depende de un tercero

/ META-INF almacenada la información de metadatos

/ Org se almacena en el archivo de clase asociado SpringBoot

La diferencia entre el tarro tradicional

springboot proyecto a través de MVN envasada en un frasco con META-INF mismo, excepto un paquete frasco convencional, otra estructura del paquete frasco convencional no es el mismo, la estructura más como un proyecto web tradicional paquete de guerra.

¿Cómo se está ejecutando el paquete jar

Dado que la estructura del paquete SpringBoot jarra y jarra paquete tradicional no es la misma, entonces el comando java -jar para ejecutarlo cómo es?

java -jar para iniciar el archivo de configuración de clases

java-jar la bota está dispuesto en la clase / META-INF / MANIFEST.MF archivo principal propiedad de clase de.

SpringBoot clase de proyectos jar jar paquete de configuración de arranque:

Main-Class: org.springframework.boot.loader.JarLauncher

tarro de clase paquete de arranque

MANIFEST.MF archivo de clase de arranque se configura en un paquete frasco \ org \ Spring Framework \ boot \ loader \ ruta en la clase JarLauncher.class .

Tal pom MVN es configurado por el plugin de enchufe cuando se añade en jar.original empaqueta.

responsabilidades clase JarLauncher :

de arranque y carga el MAINIFEST.MF clase configurada puesta en clase (es decir, además de notas springboot que clase de arranque springboot).

ruta de clase de configuración, por lo BOOT-INF / paquete frasco de terceros se puede encontrar en el lib.

clase frasco paquete de arranque Introducción

public class JarLauncher extends ExecutableArchiveLauncher {
    static final String BOOT_INF_CLASSES = "BOOT-INF/classes/"; //类路径
    static final String BOOT_INF_LIB = "BOOT-INF/lib/";         //第三方依赖jar路径

    public JarLauncher() {
    }

    protected JarLauncher(Archive archive) {
        super(archive);
    }

    protected boolean isNestedArchive(Entry entry) {
        return entry.isDirectory() ? 
            entry.getName().equals("BOOT-INF/classes/") : 			        
        	entry.getName().startsWith("BOOT-INF/lib/");  //判断是否以其开头来判断是jar包还是解压后的文件
    }

    public static void main(String[] args) throws Exception {
        (new JarLauncher()).launch(args);  //启动类引导
    }
}

JarLauncher soporta tanto el paquete también es compatible con el tarro después de tarro de descomprimir el paquete para funcionar.

JarLauncher llamar a la categoría de inicio Clase principal método en el mismo proceso, y está listo para ClassPath antes de comenzar.

análisis de código fuente de la prueba y lea la página P41-P54.

La guerra y tarro de SpringBoot diferencia

estructura del paquete GUERRA

/ WEB-INF / classes almacenados en el archivo de clase se compila

/ WEB-INF / lib de almacenamiento paquete frasco depende de un tercero

/ WEB-INF / lib-proporcionado almacenamiento depende siempre que se pom

/ META-INF almacenada la información de metadatos

/ Org se almacena en el archivo de clase asociado SpringBoot

Debido contenedor sevlet sólo bajo el cuidado de los INF-WEB clases y lib , por lo que la lib-siempre será ignorado en favor del uso del contenedor Servlet API llega a alcanzar, tales como API Servlet.

Por lo que este puede ser diseñado por la guerra guía WarLauncher correr y estar en un contenedor de servlets operación.

Es similar al paquete frasco de terceros Jar dependiente, y por lo tanto no se describe, y sólo si la ruta de cargas diferencia en WarLauncher proporcionado lib-dependencia.

Publicado 27 artículos originales · ganado elogios 1 · visitas 903

Supongo que te gusta

Origin blog.csdn.net/hu853996234/article/details/103334466
Recomendado
Clasificación