Как правильно хранить URL и учетные данные для подключения к БД в Java-приложении?

«Как правильно хранить URL и учетные данные для подключения к БД в Java-приложении?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Никогда не хардкодируйте строки подключения и пароли в исходном коде. Используйте внешнюю конфигурацию.

Рекомендуемые подходы:

  1. Файлы конфигурации (наиболее распространено):

    • Spring Boot (application.properties):
      spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
      spring.datasource.username=myuser
      spring.datasource.password=${DB_PASSWORD:defaultPass} # Использование переменной окружения
    • Или application.yml:
      spring:
      datasource:
        url: jdbc:postgresql://localhost:5432/mydb
        username: myuser
        password: ${DB_PASSWORD}
  2. Переменные окружения (наиболее безопасно для production):

    export DB_URL="jdbc:postgresql://prod-host:5432/prod-db"
    export DB_PASSWORD="secret"

    Код получает доступ через System.getenv("DB_URL") или автоматически в Spring (${DB_URL}).

  3. Специализированные сервисы (для облачных сред):

    • AWS Secrets Manager, HashiCorp Vault, Azure Key Vault.

Важно: Убедитесь, что конфигурационные файлы с секретами исключены из системы контроля версий (добавлены в .gitignore).