Ответ 1
Профиль - это действительно рекомендуемый подход. То, что я бы сделал, вероятно, делает реализацию in-memory "стандартным" профилем (это безобидно, в том смысле, что вы никогда не изменяете никаких реальных данных, поэтому лучше сделать это по умолчанию, если кто-то случайно запускает его против реальной базы данных). Лично я предпочитаю поместить всю внешнюю конфигурацию в один файл application.yml
, но это действительно зависит от вас. Во внешней конфигурации вам необходимо указать допустимый класс и URL-адрес драйвера, например.
spring:
datasource:
driverClassName: org.h2.Driver
url: jdbc:h2:mem:test;MODE=PostgreSQL
schema: classpath:/schema.sql
---
spring:
profiles: local
datasource:
url: jdbc:postgresql://localhost/test
username: root
password: changeme
driverClassName: org.postgresql.Driver
schema:
(Обратите внимание, что H2 имеет режим совместимости postgres, поэтому он действительно хорош как дополнение к постгресам в процессе производства.)