Можно ли запустить Spring Boot приложение без файла `application.properties`?

«Можно ли запустить Spring Boot приложение без файла `application.properties`?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. Spring Boot поддерживает множество источников конфигурации, и application.properties (или application.yml) — лишь один из них, не являющийся обязательным.

Альтернативные способы конфигурации (в порядке приоритета):

  1. Аргументы командной строки (наивысший приоритет):
    java -jar app.jar --server.port=8081 --spring.datasource.url=jdbc:h2:mem:testdb
  2. Переменные окружения:
    export SPRING_DATASOURCE_URL=jdbc:h2:mem:testdb
  3. Программная конфигурация через @Configuration-классы и @Bean:
    @Configuration
    public class AppConfig {
        @Bean
        public DataSource dataSource() {
            return DataSourceBuilder.create()
                .url("jdbc:h2:mem:testdb")
                .username("sa")
                .build();
        }
    }
  4. Аннотация @Value для инжекта значений напрямую в поля.

Spring Boot автоматически объединяет все доступные источники в единый объект Environment.