Spring Boot – Gestión de dependencias

El marco Spring-Boot es el marco de desarrollo web más popular. Sin duda, proporciona una gran cantidad de funciones esenciales y una forma conveniente de manejar esas funciones. En el corazón de Spring-Boot, se encuentra la característica de ‘Administración de dependencias’. 

Nota: La administración de dependencias es solo una forma de administrar todas las dependencias requeridas en un solo lugar y hacer un uso eficiente de ellas. 

Importancia de la gestión de dependencias

  • Permite especificar todas las dependencias requeridas de acuerdo con la respectiva versión de Spring-Boot en un solo lugar.
  • Puede especificar o cambiar la versión de Spring-Boot. Al cambiar las versiones de Spring-Boot, todas las versiones de las dependencias mencionadas (agregadas) se actualizarán automáticamente.
  • Puede evitar conflictos de diferentes versiones de bibliotecas Spring-Boot, lo que es beneficioso para los proyectos de ‘Multi-Module’.

Funcionamiento de la gestión de dependencias en Spring-Boot 

  • La dependencia no es más que una ‘Biblioteca’ que proporciona una funcionalidad específica que podemos usar en nuestra aplicación.
  • En Spring-Boot, la gestión de dependencias y la configuración automática funcionan simultáneamente.
  • Es la configuración automática lo que nos facilita enormemente la gestión de las dependencias.
  • Tenemos que agregar las dependencias en el archivo pom.xml/build.gradle.
  • Estas dependencias agregadas luego se descargarán de Maven Central.
  • Las dependencias descargadas se almacenarán en la carpeta ‘.m2’ en el sistema de archivos local.
  • La aplicación Spring-Boot puede acceder a estas dependencias desde ‘.m2’ y sus subdirectorios.
  • Ejemplo -( .m2 -> repositorio -> org , etc )
Working of Dependency Management in Spring-Boot

Ciclo de vida de la gestión de dependencias

Ejemplo de Maven Central – dependencia ‘Starter Web’

Sistemas de construcción de proyectos

  1. Debería trabajar con las dos compilaciones más utilizadas, Maven y Gradle.
  2. Maven y Gradle usan una sintaxis diferente para administrar las dependencias.
  3. Además, no necesita mencionar la versión de las dependencias, ya que Spring-Boot las configura automáticamente. Aunque también puede mencionar la versión o anularla.
  4. La lista seleccionada publicada contiene todos los módulos Spring y bibliotecas de terceros que puede usar con Spring-Boot.
  5. Maven los administra en el archivo ‘pom.xml’, mientras que Gradle los administra en el archivo ‘build.gradle’.

Características de la construcción de Maven

  1. Utiliza el compilador de Java predeterminado.
  2. Tiene codificación de fuente UTF-8
  3. Una función útil de no mencionar la información de la versión de las dependencias se hereda de POM (spring-boot-dependencies).
  4. Filtrado de recursos y configuraciones de complementos.
  5. El filtrado de recursos también es para ‘application.properties’ y ‘application.yml’.

Arrancadores de resorte

Al trabajar con la administración de dependencias, Spring-Boot Starters juega un papel importante aquí. Son un conjunto de descriptores de dependencia convenientes que uno debe mencionar en su aplicación. Puede obtener acceso a todas las pilas tecnológicas Spring y relacionadas que necesita para el proyecto. Un iniciador tiene un patrón de nomenclatura similar: ( spring-boot-starter-* ). Los arrancadores de terceros no comienzan con ‘spring-boot’. La estrella en el patrón de inicio toma el lugar de cualquier nombre de tecnología que se vaya a utilizar.

Example: 'spring-boot-starter-jdbc'

Tipos de entrantes:

  1. Arrancadores de aplicaciones.
  2. Arrancadores técnicos.
  3. Arrancadores listos para la producción.

Todas las dependencias requeridas de Spring-Boot están incrustadas en la etiqueta/bloque de ‘dependencias’.

Maven -> pom.xml

<dependencies>
     <dependency>
          <groupId> ... </groupId>
          <artifactId> ... </artifactId>
          <version> ... </version>
     </dependency>
</dependencies>

Experto

Adición de dependencias

Al crear un nuevo proyecto Spring-Boot en STS (Spring Tool Suite), puede agregar las dependencias requeridas mientras configura el proyecto.

  1. Expediente
  2. Nuevo -> Proyecto de inicio de primavera
  3. próximo
  4. Busque las dependencias requeridas y agréguelas
  5. próximo
  6. Finalizar

Ventana de selección de dependencia.

Para agregar la dependencia para el proyecto de trabajo actual:

  1. Haga clic derecho en el proyecto
  2. Seleccione Primavera -> Agregar entrantes
  3. Busque las dependencias requeridas y agréguelas
  4. próximo
  5. Seleccione pom.xml/HELP.md o ambos
  6. Finalizar

Aparece después del paso de la imagen anterior

Si conoce la dependencia, puede colocarla directamente en el archivo pom.xml. Por ejemplo, para agregar el motor de plantillas Thymeleaf en la compilación de su proyecto, se puede agregar la siguiente dependencia en la etiqueta ‘ <dependencies></dependencies> ‘.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 Ejemplo: pom.xml 

XML

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>sia</groupId>
    <artifactId>GFG</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>GFG</name>
    <description>GFG</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</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</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
    </dependencies>
  
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
  
</project>

Entendiendo/Configurando Dependencias

A – Padre Inicial

Para aprovechar los valores predeterminados ‘sensibles’ autoconfigurados, debe agregar Starter Parent en el proyecto de su compilación.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>___</version>
</parent>

Con la configuración predeterminada como la anterior, puede anular las dependencias respectivas anulando una ‘propiedad’.

<properties>
    <slf4j.version>___</slf4j.version>
</properties>

This will make sure that the mentioned version of a SLF4j library will be used.

También puede administrar el ‘ Principal inicial ‘ configurado automáticamente y crear un POM personalizado sin necesidad de especificar el primero con la ayuda del artefacto ‘scope=import’ de ‘spring-boot-dependencies.

 <dependencyManagement>
     <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>___</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Después de esto, normalmente puede agregar las dependencias como la mencionada anteriormente. Pero, para anular la dependencia individual, deberá agregar una entrada respectiva antes de la entrada ‘spring-boot-dependencies’.

<dependencyManagement>
    <dependencies>
        
        <!-- Override SLF4J provided by Spring Boot -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>___</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>___</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    
    </dependencies>
</dependencyManagement>

Pero, debe configurar manualmente la administración del complemento agregando ‘spring-boot-maven-plugin’ explícitamente. Administrar el complemento de Maven es muy esencial, ya que empaqueta la aplicación Spring-Boot en un contenedor ejecutable.

Maven -> pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

B – Versión de Java

También puede cambiar la versión de Java de la siguiente manera:

<properties>
    <java.version>___</java.version>
</properties>

C – Herramientas para desarrolladores

Un conjunto de herramientas específicas para hacer mucho más fácil el proceso de desarrollo de aplicaciones. Está en el módulo ‘spring-boot-devtools’.

Maven -> pom.xml

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <optional>true</optional>
</dependency>

gradle 

En el caso de un ‘Padre inicial’ como en Maven, aquí no hay un ‘Super padre’ para aprovechar algunas configuraciones automáticas. Para agregar dependencias en Gradle, agréguelas en la sección ‘dependencias{ }’. Para proporcionar un jar ejecutable, puede agregar lo siguiente en la sección de dependencias:

'spring-boot-gradle-plugin'

Ejemplo: build.gradle

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.8.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

repositories {
    jcenter()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile("org.springframework.boot:spring-boot-starter-test")
}

Para agregar las ‘ Herramientas de desarrollador ‘, agregue lo siguiente en el bloque ‘dependencias’

Gradle -> build.gradle

developmentOnly("org.springframework.boot:spring-boot-devtools")

Nota : cada versión de Spring Boot está asociada con una versión base de Spring Framework, por lo que se recomienda encarecidamente no especificar su versión por su cuenta.

Publicación traducida automáticamente

Artículo escrito por pawardarshan461 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *