refactor: replace Spring Boot with Jooby framework
- Remove Spring Boot dependencies and annotations. - Implement Jooby MVC controllers and Guice dependency injection. - Migrate persistence layer to Ebean ORM. - Configure Flyway migrations and ApiErrorController. - Update application configuration to HOCON format.
This commit is contained in:
65
bootstrap/src/main/resources/application.conf
Normal file
65
bootstrap/src/main/resources/application.conf
Normal file
@@ -0,0 +1,65 @@
|
||||
# Configuración de la App (Sustituye a info y app)
|
||||
info {
|
||||
app {
|
||||
version = "0.0.1-SNAPSHOT" # Maven no rellena esto automáticamente en Jooby sin plugins extra, mejor ponlo fijo
|
||||
}
|
||||
}
|
||||
|
||||
app {
|
||||
cors {
|
||||
allowed-origins = ${?APP_ALLOWED_ORIGINS}
|
||||
allowed-origins = "http://localhost:8080" # Valor por defecto
|
||||
}
|
||||
}
|
||||
|
||||
# Configuración del Servidor
|
||||
server {
|
||||
port = 8080
|
||||
# En Jooby, el context-path se define habitualmente en la clase App,
|
||||
# pero puedes usar esta propiedad si la gestionas manualmente.
|
||||
}
|
||||
|
||||
# Base de Datos (Ebean usa estas propiedades automáticamente)
|
||||
db {
|
||||
url = "jdbc:postgresql://"${?DB_HOST}":"${?DB_PORT}"/"${?DB_NAME}
|
||||
user = ${?DB_USER}
|
||||
password = ${?DB_PASSWORD}
|
||||
driverClassName = org.postgresql.Driver
|
||||
|
||||
# HikariCP (Configuración de Pool)
|
||||
hikari {
|
||||
maximumPoolSize = 3
|
||||
minimumIdle = 1
|
||||
idleTimeout = 30000
|
||||
connectionTimeout = 10000
|
||||
}
|
||||
}
|
||||
|
||||
flyway {
|
||||
# Ubicación de tus scripts .sql
|
||||
locations = ["classpath:db/migration"]
|
||||
cleanDisabled = false
|
||||
|
||||
# Si quieres que se ejecute siempre al arrancar
|
||||
run = [migrate]
|
||||
}
|
||||
|
||||
# Ebean (Sustituye a jpa/hibernate)
|
||||
ebean {
|
||||
ddl {
|
||||
generate = false
|
||||
run = false
|
||||
}
|
||||
# Mostrar SQL en consola
|
||||
debug = true
|
||||
}
|
||||
|
||||
# Jackson
|
||||
jackson {
|
||||
indent_output = true
|
||||
}
|
||||
|
||||
# Swagger/OpenAPI (Jooby OpenAPI usa estas rutas por defecto o configurables)
|
||||
swagger {
|
||||
path = "/swagger-ui"
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
info:
|
||||
app:
|
||||
version: @project.version@
|
||||
app:
|
||||
cors:
|
||||
allowed-origins: ${APP_ALLOWED_ORIGINS:http://localhost:8080}
|
||||
spring:
|
||||
application:
|
||||
name: portfolio-api
|
||||
web:
|
||||
resources:
|
||||
add-mappings: false
|
||||
|
||||
datasource:
|
||||
url: jdbc:postgresql://${DB_HOST:localhost}:${DB_PORT:5432}/${DB_NAME:portfolio}
|
||||
username: ${DB_USER:postgres}
|
||||
password: ${DB_PASSWORD:postgres}
|
||||
driver-class-name: org.postgresql.Driver
|
||||
hikari:
|
||||
maximum-pool-size: 3
|
||||
minimum-idle: 1
|
||||
idle-timeout: 30000
|
||||
connection-timeout: 10000
|
||||
leak-detection-threshold: 10000
|
||||
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
properties:
|
||||
hibernate.transaction.jta.platform: org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform
|
||||
hibernate:
|
||||
format_sql: true
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
show-sql: true
|
||||
|
||||
jackson:
|
||||
serialization:
|
||||
INDENT_OUTPUT: true
|
||||
|
||||
springdoc:
|
||||
api-docs:
|
||||
path: /v3/api-docs
|
||||
swagger-ui:
|
||||
path: /swagger-ui
|
||||
|
||||
server:
|
||||
port: 8080
|
||||
servlet:
|
||||
context-path: /api
|
||||
forward-headers-strategy: framework
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user