Default properties provided by Spring Boot’s SpringApplication.setDefaultProperties() method.
@PropertySource-annotated @Configuration classes.
Config data (such as application.properties files).
A RandomValuePropertySource that has properties only in random.*.
OS environment variables.
Java system properties (System.getProperties()).
JNDI attributes from java:comp/env.
ServletContext init parameters.
ServletConfig init parameters.
Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property).
Command-line arguments.
The properties attribute on your tests. This is available with the @SpringBootTest annotation and also slice-based testing (which we’ll cover later in Chapter 5, Testing with Spring Boot).
@TestPropertySource annotations on your tests.
DevTools global settings properties (the $HOME/.config/spring-boot directory when Spring Boot DevTools is active).