Cree un proyecto springBoot usando la línea de comando maven

Crear proyecto

1. Primero use el comando mvn para crear una estructura básica de proyecto Java

// 创建MyProject目录,用于存放java项目
~/Desktop$ mkdir MyProject 

// 使用mvn命令创建java项目结构
~/Desktop/MyProject$ mvn archetype:generate -DgroupId=com.wong -DartifactId=springboot -Dversion=1.0.0 -DinteractiveMode=false

// 创建好的java项目,因为我们指定了-DartifactId=springboot,所以我们的项目名就是springboot
~/Desktop/MyProject$ tree -L 1
.
└── springboot

Explique el comando para crear una estructura de proyecto java:

  • mvn : comando maven
  • archetype: generate : este es un complemento de Maven. El prototipo de complemento arquetipo es un kit de herramientas de plantilla de proyecto de Maven. Puede usarlo para crear una estructura básica de proyecto de Java.
  • -DgourpId : nombre de la organización, URL del sitio web de la empresa + nombre del proyecto
  • -DartifactId : nombre del proyecto (nombre del módulo)
  • -Versión : número de versión del proyecto
  • -Modo interactivo : si se usa el modo interactivo: falso no se usa, creado directamente; verdadero para usar, debe ingresar información relevante de acuerdo con la solicitud.

Consejos cálidos:

Puede usar el -DarchetypeArtifactIdArchetypeId especificado para crear rápidamente una aplicación Java, como:

(1) Crear una aplicación Java:
mvn archetype:generate -DgroupId=com.wong.company -DartifactId=shopingmall -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

(2) Crear un proyecto web:
mvn archetype:generate -DgroupId=com.wong.company -DartifactId=shopingmall -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

2. Agregue el archivo pom.xml

<project...>
  ...
  <!--spring-boot-starter-parent是spring boot 的父级依赖,它是一个特殊的starter>,用以提供相关的maven默认依赖-->
  <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.2.5.RELEASE</version>
  </parent>
  <dependencies>
    <!--Spring Boot WEB依赖-->
    <!--项目导入web的启动依赖,SpringBoot就会集成SpringMVC,就可以进行Controller的开发-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    ...
  </dependencies>
</project>

Consejos

(1) spring-boot-starter-parent es la dependencia principal de spring boot, es un iniciador especial para proporcionar dependencias predeterminadas relacionadas de Maven. Acerca de qué paquetes jar proporciona el arranque de primavera, puede ~ / .m2 / repository / org / springframework / boot / spring-boot-dependencies / 2.2.5.RELEASE / spring-boot-dependencies-2.2.5.RELEASE.pom Archivo. Por cierto, en Linux, cada usuario tiene un directorio de repositorio con un nombre de ruta de .m2 / respository / en su propio directorio de usuario.

Si no desea utilizar una versión que depende del valor predeterminado en spring-boot-dependencies-2.2.5.RELEASE.pom, puede volver a especificar la versión en el pom.xml de este proyecto para anular el valor predeterminado, como el siguiente.
La versión predeterminada de Spring Data en spring-boot-dependencies-2.2.5.RELEASE.pom es:

    <properties>
	  ...
      <spring-data-releasetrain.version>Moore-SR5</spring-data-releasetrain.version>
	  ...
	<properties>
    <dependencies>
      <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-releasetrain</artifactId>
        <version>${spring-data-releasetrain.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
     </dependencies>

Entonces podemos volver a especificar la versión en pom.xml en este proyecto:

    <properties>  
        <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>  
    </properties>  

(2) Si no desea heredar el POM de spring-boot-starter-parent, es decir, <parent> especifica que no es spring-boot-starter-parent, sino otro. Sin embargo, aún podemos mantener la gestión de dependencias con spring-boot-starter-parent mediante el uso de la dependencia de alcance = importación, solo agregue el pom.xml de nuestro proyecto:

    <dependencyManagement>  
         <dependencies>  
            <dependency>  
                <!-- Import dependency management from Spring Boot -->  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-dependencies</artifactId>  
                <version>2.2.5.RELEASE</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
        </dependencies>  
    </dependencyManagement>  

Arriba, modificamos la propiedad spring-data-releasetrain.version para anular la versión predeterminada, pero a veces hay un problema con este método de modificación de propiedad. Es decir, hay muchas dependencias para usar esta propiedad, y la cambiaremos todo cuando la cambiemos. Pero no queremos otras versiones dependientes, entonces, ¿qué debemos hacer? De hecho, es muy simple, es decir, no modifique los atributos y redefina las dependencias directamente. Pero debe agregar una configuración a la gestión de dependencias del proyecto antes del elemento spring-boot-dependencies, como actualizar a otra versión de Spring Data:

    <dependencyManagement>  
        <dependencies>  
            <!-- Override Spring Data release train provided by Spring Boot -->  
            <dependency>  
                <groupId>org.springframework.data</groupId>  
                <artifactId>spring-data-releasetrain</artifactId>  
                <version>Fowler-SR2</version>  
                <scope>import</scope>  
                <type>pom</type>  
            </dependency>  
            <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-dependencies</artifactId>  
                <version>2.2.5.RELEASE</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
        </dependencies>  
    </dependencyManagement>  

(3) Comenzar a confiar en spring-boot-starter-xx
Spring Boot proporciona muchos módulos de dependencia " listos para usar ", todos con el nombre de spring-boot-starter-xx. La dependencia de inicio es la dependencia que encapsula automáticamente la función que desea lograr . Por ejemplo, si queremos implementar funciones web antes, necesitamos introducir spring-boot-starter-web como una dependencia inicial.
Spring Boot reduce la complejidad de las dependencias del proyecto al proporcionar muchas dependencias iniciales. La dependencia inicial es esencialmente un Modelo de objetos de proyecto (POM) de Maven, que define las dependencias transitivas en otras bibliotecas, que se suman para admitir una determinada función. Muchas de las dependencias de nombres al principio implicaban ciertas funciones o tipos de funciones que proporcionan.

SpringBoot Maven plugin

Esto está en spring-boot-dependencies-2.2.5.RELEASE.pom, el pom heredado del proyecto pom.xml:

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>2.2.5.RELEASE</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
  </build>

Este complemento es demasiado importante, proporciona muchas funciones:

  • Empaquete el proyecto en un súper JAR ejecutable (uber-JAR), que incluye escribir todas las dependencias de la aplicación en el archivo JAR y agregar un archivo de descripción al JAR, cuyo contenido le permite usar java -jar para ejecutar la aplicación Procedimiento.
  • "Importante" busca el método public static void main () para marcarlo como una clase ejecutable .

Para obtener más complementos de SpringBoot Maven, consulte "Complemento SpringBoot Maven"

Preparación de la clase de entrada a la solicitud.

package com.wong;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * Hello world!
 *
 */
@SpringBootApplication
public class App
{
    public static void main( String[] args )
    {
         SpringApplication.run(App.class,args);
    }
}

  • @SpringBootApplication: es la anotación central del proyecto Sprnig Boot, el objetivo principal es habilitar la configuración automática. @SpringBootApplication = (propiedad predeterminada) @Configuration + @EnableAutoConfiguration + @ComponentScan
  • Método principal: este es el método principal de una aplicación Java estándar y su función principal es servir como punto de entrada para el inicio del proyecto.

Controlador de escritura

Debe escribirse en el mismo paquete que la clase de inicio de la aplicación que se va a escanear.

package com.wong;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class First{
	@GetMapping("hello")
	public String index(){
		return "Hello World!";
	}
}

La combinación de @ RestController = @ Controller + @ ResponseBody, los métodos en la clase que usan esta anotación se generan en formato json.

Comience el proyecto springboot

Tres formas de comenzar el proyecto

  • Método principal de la aplicación
  • Use el comando: mvn spring-boot: ejecutar para comenzar
  • Use el comando: mvn package to package, el archivo JAR generado, use el comando java -jar para ejecutar
~/Desktop/MyProject/springboot$ mvn spring-boot:run

Inserte la descripción de la imagen aquí
2020-03-22 02:23:31.204 INFO 10993 --- [ main] com.wong.App : Started App in 1.384 seconds (JVM running for 1.731)¡La aparición de esta oración indica un inicio exitoso!

Prueba

Inserte la descripción de la imagen aquí
Gracias por leer!

Publicado 381 artículos originales · elogiado 85 · 80,000 vistas +

Supongo que te gusta

Origin blog.csdn.net/weixin_40763897/article/details/105020990
Recomendado
Clasificación