Este proyecto es un ejemplo práctico del desarrollo de una API REST siguiendo una Arquitectura Hexagonal.
Java
Maven
- Clonar el repositorio en tu equipo:
> cd <folder path>
> git clone https://github.com/DomingoAlvarez99/videoclub-hexagonal-sync
- Importar el proyecto mediante IntelliJ IDEA
- Import Project, y seleccionar la carpeta del proyecto.
- Marcar Create Project from external model, elegir Maven.
- Persistence bean & context
- MongoDB
package org.dalvarez.videoclub.application; @EnableMongoRepositories(basePackageClasses = {org.dalvarez.videoclub.persistence_mongodb.repositories.MovieRepository.class}) public class ApplicationConfiguration { @Bean public MoviePersistence moviePersistence(org.dalvarez.videoclub.persistence_mongodb.repositories.MovieRepository movieRepository) { return new MoviePersistenceMongodbAdapter(movieRepository); } }
- JPA & H2
package org.dalvarez.videoclub.application; @EntityScan(basePackageClasses = {org.dalvarez.videoclub.persistence_h2.entities.MovieEntity.class}) @EnableJpaRepositories(basePackageClasses = {org.dalvarez.videoclub.persistence_h2.repositories.MovieRepository.class}) public class ApplicationConfiguration { @Bean public MoviePersistence moviePersistence(org.dalvarez.videoclub.persistence_h2.repositories.MovieRepository movieRepository) { return new MoviePersistenceH2Adapter(movieRepository); } }
- Application.properties
- MongoDB
spring.data.mongodb.auto-index-creation=false
- JPA & H2
spring.jpa.database=H2 spring.jpa.hibernate.ddl-auto=create spring.database.driverClassname=org.h2.Driver spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.datasource.username=sa spring.datasource.password=
- Desplegar el proyecto localmente:
> mvn clean install
- Arrancar el proyecto:
> mvn spring-boot:run -pl videoclub-application
- Ejecutar tests unitarios:
> mvn test
- Ejecutar tests IT:
> mvn failsafe:integration-test
- Perfil para omitir tests:
>-Pno-tests