Spring Boot application.properties – Guia completa per configurar bases de dades, missatgeria i seguretat
Quan construeixes microserveis moderns amb Spring Boot, la teva aplicació sol interactuar amb bases de dades, caches, brokers de missatgeria, serveis d'autenticació i més. En lloc de hardcodejar configuracions, Spring Boot utilitza un mecanisme de configuració externalitzada a través d'application.properties o application.yml. A Q2BSTUDIO, empresa de desenvolupament de programari i aplicacions a mida, especialistes en intel·ligència artificial, ciberseguretat, serveis cloud aws i azure, serveis intel·ligència de negoci, ia per a empreses, agents IA i power bi, dissenyem solucions de programari a mida i consultoria per deixar els teus microserveis llestos per a producció.
1 MySQL Configuració
Spring Boot auto configura DataSource i JPA si detecta spring-boot-starter-data-jpa al classpath. Exemple application.properties
# =============================== MySQL Database Configuration ===============================
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=secret
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
Notes bones pràctiques ddl-auto update és útil en desenvolupament; en producció utilitza validate o none. Per a secrets utilitza variables d'entorn, AWS Secrets Manager o HashiCorp Vault. Q2BSTUDIO implementa polítiques de ciberseguretat i gestió de secrets en desplegaments cloud aws i azure.
YAML equivalent
spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC username: root password: secret driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect
2 MongoDB Configuració
Si afegeixes spring-boot-starter-data-mongodb, Spring Boot crea automàticament MongoTemplate. application.properties d'exemple
# =============================== MongoDB Configuration ===============================
spring.data.mongodb.uri=mongodb://localhost:27017/mydatabase
spring.data.mongodb.database=mydatabase
YAML equivalent
spring: data: mongodb: uri: mongodb://localhost:27017/mydatabase database: mydatabase
3 Redis Configuració
Per a caching o emmagatzematge key value amb spring-boot-starter-data-redis
# =============================== Redis Configuration ===============================
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=
spring.data.redis.timeout=60000
YAML equivalent
spring: data: redis: host: localhost port: 6379 password: timeout: 60000
4 Apache Kafka Configuració
Per a microserveis orientats a esdeveniments amb spring-kafka
# =============================== Kafka Configuration ===============================
spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=my-group
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer
YAML equivalent
spring: kafka: bootstrap-servers: localhost:9092 consumer: group-id: my-group auto-offset-reset: earliest key-deserializer: org.apache.kafka.common.serialization.StringDeserializer value-deserializer: org.apache.kafka.common.serialization.StringDeserializer producer: key-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer
5 JWT Configuració
JWT no ve auto configurat, defineix propietats per a la teva capa de seguretat personalitzada
# =============================== JWT Configuration ===============================
jwt.secret=my-super-secret-key
jwt.expiration=3600000 # 1 hour in milliseconds
jwt.refresh-expiration=604800000 # 7 days
En entorns productius utilitza claus gestionades per serveis de secrets i rotació periòdica. Q2BSTUDIO integra solucions d'identitat i ciberseguretat amb JWT i MFA per a aplicacions a mida i programari a mida.
YAML equivalent
jwt: secret: my-super-secret-key expiration: 3600000 refresh-expiration: 604800000
6 OAuth2 Configuració
Per a login OAuth2 amb Google, GitHub o proveïdors externs utilitzant spring-boot-starter-oauth2-client
# =============================== OAuth2 Configuration Google Example ===============================
spring.security.oauth2.client.registration.google.client-id=your-client-id
spring.security.oauth2.client.registration.google.client-secret=your-client-secret
spring.security.oauth2.client.registration.google.scope=email,profile
spring.security.oauth2.client.registration.google.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}
spring.security.oauth2.client.provider.google.authorization-uri=https://accounts.google.com/o/oauth2/auth
spring.security.oauth2.client.provider.google.token-uri=https://oauth2.googleapis.com/token
spring.security.oauth2.client.provider.google.user-info-uri=https://www.googleapis.com/oauth2/v3/userinfo
YAML equivalent
spring: security: oauth2: client: registration: google: client-id: your-client-id client-secret: your-client-secret scope: email,profile redirect-uri: {baseUrl}/login/oauth2/code/{registrationId} provider: google: authorization-uri: https://accounts.google.com/o/oauth2/auth token-uri: https://oauth2.googleapis.com/token user-info-uri: https://www.googleapis.com/oauth2/v3/userinfo
7 Logging per a Depuració
Un logging detallat és invaluable en integrar múltiples serveis
# =============================== Logging Configuration ===============================
logging.level.root=INFO
logging.level.org.springframework=DEBUG
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
YAML equivalent
logging: level: root: INFO org.springframework: DEBUG org.hibernate.SQL: DEBUG org.hibernate.type.descriptor.sql.BasicBinder: TRACE
8 Configuració per perfils
Utilitza fitxers específics per entorn per separar configuracions de desenvolupament i producció. Exemples de noms file based application-dev.properties application-prod.properties. També pots utilitzar application-dev.yml i application-prod.yml i activar perfils amb spring.profiles.active. A Q2BSTUDIO implementem pipelines CI CD que gestionen perfils i secrets en entorns cloud aws i azure per a desplegaments segurs.
Bones pràctiques addicionals
Utilitzar variables d'entorn per a credencials, xifrar secrets, auditar accessos i aplicar principis de menor privilegi. Monitoritza connexions i mètriques amb eines cloud i solucions d'observabilitat. Per a projectes que requereixen intel·ligència artificial o anàlisi de dades utilitza serveis intel·ligència de negoci i integració amb power bi. Q2BSTUDIO ofereix serveis integrals en intel·ligència artificial, ia per a empreses, desenvolupament d'agents IA i consultoria en power bi per millorar presa de decisions.
Conclusió
L'externalització de configuració amb application.properties i application.yml facilita portar aplicacions entre entorns i mantenir bones pràctiques operatives. Si necessites ajuda per configurar Spring Boot, arquitectures cloud, solucions de ciberseguretat o desenvolupar programari a mida i aplicacions a mida amb capacitats d'intel·ligència artificial, contacta amb Q2BSTUDIO especialistes en serveis cloud aws i azure, serveis intel·ligència de negoci, agents IA i power bi.




