...
| Bloque de código | ||
|---|---|---|
| ||
<properties>
<log4j2.version>2.17.1</log4j2.version>
<dependencies>
<!-- JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>5.4.12.Final</version>
<scope>provided</scope>
</dependency>
<!-- Real DB -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>jdbc.driver</artifactId>
<version>11.2.0.3.0</version>
</dependency>
<!-- TOMCAT -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- SECURITY -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- TEST -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Test DB -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<!-- Selenium -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<!-- <version>3.141.59</version> -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- Log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- frontLogger -->
<dependency>
<groupId>es.um.atica.fundewebjs.fundewebjs-api</groupId>
<artifactId>fundewebjs-lagar</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<repositories>
<repository> <!-- API DOC -->
<dependency>
<id>archiva.atica.umu.es</id><groupId>org.springdoc</groupId>
<name>ATICA - UMU Repository</name><artifactId>springdoc-openapi-webmvc-core</artifactId>
<url>https://archiva.um.es/archiva/repository/FundeWeb/</url>
<releases><version>${springdoc.version}</version>
</dependency>
<dependency>
<enabled>true</enabled><groupId>org.springdoc</groupId>
</releases><artifactId>springdoc-openapi-hateoas</artifactId>
<snapshots>
<enabled>true</enabled><version>${springdoc.version}</version>
</snapshots>dependency>
</repository>
<repository><dependency>
<id>fundewebjs.archiva.atica.umu.es</id><groupId>org.springdoc</groupId>
<name>ATICA - UMU Repository - FundeWebJS</name><artifactId>springdoc-openapi-data-rest</artifactId>
<url>https://archiva.um.es/archiva/repository/FundeWebJS/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository> </repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>${hibernate.version}</version>
<executions>
<execution>
<configuration>
<failOnError>true</failOnError>
<enableLazyInitialization>true</enableLazyInitialization>
<enableDirtyTracking>true</enableDirtyTracking>
<enableAssociationManagement>true</enableAssociationManagement>
<enableExtendedEnhancement>false</enableExtendedEnhancement>
</configuration>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- JaCoCo configuration -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco<version>${springdoc.version}</version>
</dependency>
<!-- Servicios RRHH Client -->
<dependency>
<groupId>es.um.atica.fundewebjs.fundewebjs-api</groupId>
<artifactId>fundewebjs-serviciosrrhh-client</artifactId>
<version>1.0.2-SNAPSHOT</version>
</dependency> </dependencies>
<repositories>
<repository>
<id>archiva.atica.umu.es</id>
<name>ATICA - UMU Repository</name>
<url>https://archiva.um.es/archiva/repository/FundeWeb/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>fundewebjs.archiva.atica.umu.es</id>
<name>ATICA - UMU Repository - FundeWebJS</name>
<url>https://archiva.um.es/archiva/repository/FundeWebJS/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository> </repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.hibernate.orm.tooling</groupId>
<artifactId>hibernate-enhance-maven-plugin</artifactId>
<version>0.7.7.201606060606</<version>${hibernate.version}</version>
<executions>
<execution>
<goals><configuration>
<goal>prepare-agent<<failOnError>true</goal>failOnError>
< <enableLazyInitialization>true</goals>enableLazyInitialization>
<<enableDirtyTracking>true</execution>enableDirtyTracking>
<execution> <enableAssociationManagement>true</enableAssociationManagement>
<id>report<<enableExtendedEnhancement>false</id>enableExtendedEnhancement>
<phase>prepare-package<</phase>configuration>
<goals>
<goal>report<<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- JaCoCo Enunciateconfiguration -->
<plugin>
<groupId>com<groupId>org.webcohesion.enunciate<jacoco</groupId>
<artifactId>enunciate<artifactId>jacoco-maven-plugin</artifactId>
<version>2<version>0.7.137.0<201606060606</version>
<dependencies><executions>
<dependency><execution>
<groupId>com.webcohesion.enunciate</groupId><goals>
<artifactId>enunciate <goal>prepare-lombok<agent</artifactId>goal>
<version>2.9.1</version></goals>
</dependency>execution>
</dependencies>
<executions>
<execution>
<id>fdwjs<<id>report</id>
<configuration><phase>prepare-package</phase>
<docsDir>${basedir}/src/main/resources/</docsDir><goals>
<docsSubdir>static/docs/</docsSubdir><goal>report</goal>
</configuration>goals>
</execution>
</executions>
</plugin>
<!-- FIN Enunciate -->
</plugins>
</<plugin>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-maven-plugin</artifactId>
<version>2.13.0</version>
<dependencies>
<dependency>
<groupId>com.webcohesion.enunciate</groupId>
<artifactId>enunciate-lombok</artifactId>
<version>2.9.1</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>fdwjs</id>
<configuration>
<docsDir>${basedir}/src/main/resources/</docsDir>
<docsSubdir>static/docs/</docsSubdir>
</configuration>
</execution>
</executions>
</plugin>
<!-- FIN Enunciate -->
</plugins>
</build> |
application.properties
Como hemos visto en el apartado anterior, en el archivo application.properties incluiremos algunas variables de configuración del proyecto:
| Bloque de código |
|---|
########## RUTA########## BASERuta REST ##########oauth server.servlet.context-path=/apiapp.author=acade app.apiname=expedienteacademico-api app.server.path=/${app.author}/${app.apiname} ########## BASE DE DATOS ########## spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect spring.jpa.hibernate.ddl-auto = validateEntorno app.env=desa ########## BASE DE DATOS ########## spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect spring.jpa.generate-ddl=false spring.jpa.hibernate.ddl-auto = validate spring.datasource.url=jdbc:oracle:thin:@hydra-prescan.atica.um.es:1526/ZEUSDESA spring.datasource.username=USER spring.datasource.password=PASSWORD ########## ACTUATOR ########## management.endpoints.enabled-by-default=false management.endpoint.health.enabled=true management.endpoints.web.exposure.include=health management.health.probes.enabled=true management.endpoint.health.group.liveness.include=livenessstate,ping management.endpoint.health.group.readiness.include=readinessstate,ping management.endpoint.health.group.custom.include=db ########## FRONT-LOGGER ########## # FundeWebJS Habilitar endpoint jsn.logger fdwjs.api.frontLogger.enable=true # FundeWebJS Habilitar filtro para cabeceras en logs MDC de lagar fdwjs.api.lagar.enable=true fdwjs.api.lagar.headers=UMU-User-UUID,UMU-Client-APP |
...
En la clase que inicia la aplicación, que será algo como NombreApplication.java, sustituyendo Nombre por el de nuestra aplicación, tendremos que añadir a la clase la anotación @ComponentScannotación SpringBootApplication el atributo scanBasePackages, con el contenido siguiente:
| Bloque de código | ||
|---|---|---|
| ||
@ComponentScan@SpringBootApplication( basePackagesscanBasePackages = { "es.um.atica.aplicacion[PAQUETE_APPLICATION]", "es.um.atica.fundewebjs" } ) |
...