Java uygulamasını çalıştırırken, sınıfların (class), kaynak dosyalarının (resource) ve kütüphanelerin (jar) nerede olduğunu JVM’e (Java Virtual Machine) söyleyen bir yol listesidir.
Başka bir deyişle:
JVM’in arayıp bulacağı yerlerin haritasıdır.
.class dosyaları (derlenmiş Java sınıfları)
.jar dosyaları (harici kütüphaneler)
application.properties, log4j.xml gibi config dosyaları
static, templates, META-INF gibi kaynaklar
Spring Boot, classpath'i tarayarak otomatik işler yapar:
Spring Özelliği | Classpath Tabanlı Davranış |
---|---|
@ComponentScan | Classpath’teki bean sınıflarını tarar |
@EnableAutoConfiguration | classpath’teki jar’lara göre config yükler (örneğin: spring-boot-starter-web) |
application.properties | classpath:/application.properties dosyasını arar |
Thymeleaf, Freemarker gibi şablon motorları | classpath:/templates/ içinde HTML dosyaları arar |
Statik dosyalar (CSS, JS, img) | classpath:/static/, classpath:/public/ gibi yerlerde arar |
<!-- Maven örneği -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
src/
└── main/
├── java/ --> Kodlar
└── resources/ --> Classpath dosyaları (otomatik)
├── application.yml
├── logback.xml
└── static/
Yani src/main/resources/application.yml dosyasını şöyle yüklersin:
@Value("${my.property}")
private String myProperty;
classpath, Java'da JVM’in, senin kodlarını ve kaynaklarını bulduğu yollar kümesidir.
Spring Boot, bu yolu çok aktif ve akıllıca kullanır. Bu sayede birçok iş "otomatik" görünür.
*Gönderi ve görsel chatgpt ile oluşturulmuştur.