22 Sıkça Sorulan Spring Boot Mülakat Soruları ve Cevapları
Yayınlanan: 2022-11-10Yaklaşan bir röportajda yer almayı dört gözle bekleyen bir Java Spring Boot geliştiricisi misiniz, ancak hangi soruları bekleyeceğinizden emin değil misiniz? Yardım etmek için buradayız!
Bu makale, sık sorulan Spring Boot mülakat sorularını ve mülakatçıların sizi test etmek için kullanabileceği cevapları özetleyerek yeterince hazırlanmanıza yardımcı olacaktır.
Görüşmeciler, görüşülen kişilerin belirlenen rolleriyle ilgili beceri düzeylerini test etmek için stratejik Java Spring Boot soruları kullanır. Bu nedenle, ilgili sorularla hazırlanmanız ve bunlara nasıl cevap vereceğinizi bilmeniz gerekir.
Röportaj sorularına ve bunlara karşılık gelen cevaplara geçmeden önce, Spring Boot'un ne olduğuna ve Java geliştiricileri için ne kadar yararlı olduğuna dair temel bir genel bakışı ele alalım.
Java Bahar Önyüklemesi nedir?
Bu Java çerçevesi, önemli ekip tarafından 2014 yılında yaratılmış bir üründür. Açık kaynaklı bir çerçeve olan Spring Boot, bağımsız, üretim düzeyinde olan ve ayrıca bir Java Sanal Makinesi (JVM) üzerinde çalışabilen uygulamaları verimli bir şekilde geliştirir.
Java geliştiricileri, hızlı ve kolay kurulum süreci ve güvenli yapılandırma süresi nedeniyle web uygulamaları ve mikro hizmet geliştirme için tercih ediyor.
Spring Boot tarafından Spring tabanlı uygulamaların kolay kurulumu ve konfigürasyonu, aşağıdakileri içeren üç temel yetenek ile mümkündür:
- Otomatik konfigürasyon – Spring uygulamasının otomatik konfigürasyonudur.
- Spring Boot, kullanılacak yapılandırma varsayılanlarına ve gerekli bağımlılıklar için kurulacak paketlere fikirli bir yaklaşım sağlar. Bu düşünceli yaklaşım, projelerin hızlı kurulumuna yardımcı olur.
- Sprsetupoot, bir web sunucusuna ihtiyaç duymadan uygulamanızı bağımsız olarak çalıştırmanıza olanak tanır.
Spring Boot, Java geliştiricilerine nasıl yardımcı olur?
Birincisi, Spring Boot kullanan Java geliştiricileri, üretim düzeyinde bir Spring uygulaması geliştirmek için gereken tüm bileşenlerin otomatik olarak yapılandırılmasıyla daha kolay hale geliyor. Bu, uzun vadede geliştirme süresini azaltır ve sonunda verimliliklerini artırır.
Spring Boot, Spring JDBC, Spring Data, Spring Security ve Spring ORM'yi içeren Spring ekosistemiyle de kolayca bütünleşir.
Java geliştiricileri, Spring Boot'u diğerlerinin yanı sıra Oracle, MySQL, PostgreSQL ve MongoDB gibi farklı veritabanlarıyla da bağlayabilir.
Tabii ki XML konfigürasyonları ile esnek konfigürasyonlar, Java Beans ve Database işlemleri de diğer kullanışlı özellikler arasındadır.
Bu nedenle, artık Spring Boot hakkında temel bir genel bakışa sahip olduğunuza göre, röportajınıza hazırlanmanıza yardımcı olacak sık sorulan Spring Boot röportaj Sorularından ve cevaplarından bazılarını ele alalım.
Spring Boot Mülakat Soruları ve Cevapları

Spring Boot'un bazı özellikleri nelerdir?
Bu popüler özelliklerden bazıları şunlardır:
- Spring Boot CLI, Spring Boot uygulamasını yazmak için Groovy sağlar; uzun vadede, ortak koddan kaçınılır.
- Spring Boot, uygulamanızı olası güvenlik tehditlerinden kolayca koruyan günlük kaydı ve güvenlik özelliği sağlar.
- Projeniz için ilgili bileşenlerin otomatik olarak yapılandırılmasını sağlar, böylece gereksiz WAR dosyaları riskini ortadan kaldırır.
- Başlatıcı Başlatıcı, sizin için varsayılan bir dahili proje yapısı oluşturur. Bu şekilde, proje yapısını manuel olarak ayarlamanız gerekmez.
- Spring Boot aktüatör özelliği, uygulama çalışırken içgörülere ve ölçümlere erişim sağlar.
- Elbette, Spring Boot'un en önemli özelliklerinden biri olan Starter Dependency, belirli bir özelliğin yaygın olarak kullanılan bağımlılıklarını toplamaya yardımcı olur.
Spring Boot Starters nedir?
Spring Boot başlatıcıları, uygulamanın bağımlılıklarını etkinleştiren bir dizi bağımlılık yönetimi sağlayıcısını içeren bağımlılık tanımlayıcılarıdır. Çerçeveye Otomatik Bağımlılık Çözümü sağlarlar. Başlangıçlar, kolay ve hızlı gelişmeyi artırır.
Spring Boot'da Aktüatör nedir ve avantajları nelerdir?
Aktüatör, bir uygulama çalışırken içinde ne olduğunu izlemenizi sağlayan Spring Boot özelliklerinden biridir.
Örneğin hata ayıklama sırasında aktüatörü, CPU kullanımı ve çekirdek tanımlama gibi özelliklere erişime izin vererek günlükleri analiz etmek için kullanabilirsiniz.
Ek olarak, aktüatör yalnızca bilgileri izleyen ve yöneten üretime hazır REST uç noktalarına kolay erişim sağlamakla kalmaz, aynı zamanda web'den veri alır.
Kekik yaprağı nedir ve kekik yaprağı nasıl kullanılır?
Thymeleaf, Java'nın hem Spring hem de HTML5 Java web uygulamaları için doğal bir şablon düzeni oluşturan sunucu tarafı şablonudur.
Spring Boot, dinamik web içeriğini sunmak için pom.xml dosyasındaki spring-boot-starter-thymeleaf bağımlılığını kullanarak kekik yaprağının otomatik yapılandırmasını gerçekleştirir.
Spring Boot'un thymeleaf şablonlarını veya HTML dosyalarını okumasına ve işlemesine izin vermek için şablonları src/main/resources/templates içine yerleştirin.
Thymeleaf daha sonra index.html dosyasını ayrıştırır ve indeks dosyasında bulunan dinamik değerler yerine controller sınıfından ilettiğiniz gerçek değerleri kullanır.
Bundan sonra, Spring Boot uygulaması çalışır çalışmaz mesaj web tarayıcısında işlenir.
org.springframework.boot spring-boot-starter-thymeleaf
Spring Initializer kullanarak Spring Boot projesi oluşturma sürecini tanımlayın.
Spring web aracı olan Spring Initializr, projenin detaylarını vererek birkaç adım kullanarak Spring Boot projesi oluşturmanıza olanak sağlar.
- Spring intializr'a gidin ve giriş alanlarını doldurun.
- Oluştur düğmesine tıklamak proje indirme işlemini başlatacaktır.
- İndirilen projeyi zip dosyasından çıkarın ve IDE'nizden açın. IDE'den Dosya->Yeni-> Mevcut kaynaklardan Proje ->Spring-boot-app'e gidin, ardından pom.xml dosyasını seçin. Projenin eşitlenmesi için değişiklikleri içe aktarma istemine tıklayın. Bundan sonra application.properties dosyasına gitmeyi ve server.port numarasını
server.port=7000
olarak düzenlemeyi unutmayın. - Şimdi uygulamayı src->main->java->com.gfg.Spring.boot.app adresinden çalıştırın.
Spring Boot'da JPA nedir?
Bu, ilişkisel verileri yönetmek için Nesne-İlişki Eşleme'yi (ORM) kullanan ve Java nesnesi veya Java sınıfı ile uygulamanın ilişkisel veritabanı arasındaki verilere erişime izin veren Java'da bir belirtimdir.
JPA, aynı zamanda platformdan bağımsız olan nesne yönelimli bir sorgu dili olan Java Kalıcı Sorgu Dili'ni (JPQL) kullanır.
JPA, sağladığı Entity Manager API'sini kullanarak veritabanına karşı sorgu işleme ve nesne işlemlerine izin verir.
Spring Boot'da otomatik yapılandırma nedir?
Otomatik yapılandırma, uygulamalara eklediğiniz jar bağımlılıklarını kullanarak Spring Boot uygulama yapılandırmasını otomatikleştirmeyi amaçlar.
Uygulamanın Sınıfyolundaki mevcut bağımlılıklara bağlı olarak, otomatik yapılandırma, diğerlerinin yanı sıra, yaya özel modülün JPA dahil yerleşik nesnelerini ve yay güvenliğini bildirecektir.
Yay Ek Açıklamaları nedir?
Yay açıklamaları, bir program parçacığı hakkında bilgi sunan meta verilere atıfta bulunur ve bu programa ek veriler eklerler. Sınıflar ve yöntemler de dahil olmak üzere kod bileşenleri genellikle ek açıklamalarla ilişkilendirilir.
Açıklamalar, programın çalışmasını veya derlenen kodun sonraki eylemini doğrudan etkilemez.
Sözdizimleri ' @ ' sembolü ile başlar.
Spring Boot, aşağıdakileri içeren altı ana açıklama türü sağlar:
- Yaylı Çekirdek Açıklamalar
- Yay Veri Açıklamaları
- Bahar Fasulyesi Açıklamaları
- Bahar Web Ek Açıklamaları
- Yay Planlama Ek Açıklamaları
- Yaylı Önyükleme Açıklamaları
Spring Data REST ne anlama geliyor?
Spring Data REST, minimum kod kullanarak Spring Data Resources çevresinde bulunan RESTful içindeki kaynakları ortaya çıkarır.
Aşağıdaki örnek, URL olarak http://localhost/example ve Başlık olarak Content-Type: application/json kullanarak içerik istemek için POST yöntemini kullanır.
İçerik İste:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 }
Yanıt İçeriği:
{ "name": "Jimmy", "Gender": "Male", "Age": 23 "_links": { "self": { "href": "http://localhost:8080/example/1" }, "person": { "href": "http://localhost:8080/example/1" } } }
Spring Boot DevTools'a ne gerek var?
Bunlar, geliştirmeyi kolaylaştırmak ve geliştirme süresinden tasarruf sağlamak için özellikleri ilgili geliştirme ortamlarına uygulanan önceden tanımlanmış kapsamlı araçlardır.
Spring Boot uygulamasında kodu her değiştirdiğinizde, Spring Boot DevTools özelliği otomatik olarak yeniden başlar. Bu nedenle, kodunuzu her değiştirdiğinizde uygulamanızı manuel olarak yeniden başlatma zahmetinden sizi kurtarır.
Bahar Verileri Nedir?
Spring verileri, geliştiricilere ilişkisel ve ilişkisel olmayan veriler ve bulut tabanlı veri hizmetleri gibi veri erişim teknolojilerine kolay erişim sağlamayı amaçlarken, temeldeki veri deposunun özel özelliklerini elinde tutmaya devam ediyor.
Bir fasulye varken otomatik yapılandırmaya geri çekilmesi nasıl söylenir?
Burada, aşağıdaki gibi name ve value niteliğini içeren @ConditionalOnMissingBean ek açıklamasını kullanacaksınız.
- value niteliği, kontrol edilecek fasulye türünü saklar
- kontrol edilecek fasulyeyi adlandıran name niteliği
Spring Boot'da veritabanından veri nasıl alınır?
Aşağıdaki adımları kullanarak bir MySQL veritabanından Spring Boot uygulamamıza verilere erişebiliriz.
Adım 1: MySQL'de veritabanı oluşturmak create DATABASE person
oluştur komutunu kullanın.
Adım 2: Veritabanı içinde bir tablo oluşturun:
CREATE TABLE person(id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255));
Adım 3: Şimdi bir Spring Boot uygulaması oluşturun, ardından buna JDBC, MySQL ve gerekli web bağımlılıklarını ekleyin.
Adım 4: Aşağıdaki gibi application.properties dosyasından veritabanını yapılandırın.

spring.datasource.url=jdbc:mysql://localhost:3306/personDetails spring.datasource.username=example123 spring.datasource.password=example123 spring.jpa.hibernate.ddl-auto=create-drop
Adım 5: Ardından, denetleyici sınıfındaki istekleri ele alalım:
package com.person; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.RestController; @RestController public class JdbcController { @Autowired JdbcTemplate jdbc; @RequestMapping("/save") public String index(){ jdbc.execute("insert into person (name)values(Trial)"); return "Name entered Successfully"; } }
Son olarak, erişilen verileri görmek için veritabanı girişini kontrol ederken uygulamanızı çalıştırın.
Yay Profillerine neden ihtiyacımız var?
Yay Profilleri, bir uygulamanın farklı parçaların konfigürasyonunun ayrılmasını sağlar ve bunları belirli gelişmeler için kullanır.
Yay Profilleri, geliştiriciyi, Yay Profilleri mevcut değilse, çevreye özgü dış konfigürasyonları yönetme zahmetinden de kurtarır.
Ek olarak, bu, senkronizasyonu sürdürmeyi zorlaştıracak ve belirli ortama özgü parametrelere bağlı olarak belirli gerekli şeylerden yararlanacak birkaç fabrika benzeri bileşen yazmaya ekstra ihtiyaç anlamına gelecektir.
Spring boot'da gömülü Tomcat sunucusunun portunu değiştirebilir miyiz?
Evet yapabiliriz.
Bu, application.properties dosyasını server.port
özelliğini içerecek şekilde manipüle ederek ve ona seçtiğiniz bir bağlantı noktası atayarak yapılır. Spring Boot, uygulama özellikleri dosyasını otomatik olarak yükler ve gerekli yapılandırmaları uygulamaya uygular.
Örneğin, 8080 varsayılan değerinden server.port
numarasını server.port= 8081
olarak değiştirebilirsiniz.
Log4j'yi günlüğe kaydetme için nasıl yapılandırırsınız?
Bu birkaç basit adımla Log4j'yi günlük kaydı için yapılandırabiliriz:
- Önce Java projenizi oluşturun, ardından projeye sağ tıklayın. Projeyi adlandırmak için MyEclipse->File->New->Java Project'e gidin ve bitir'i tıklayın.
- Ardından, Java proje adınıza sağ tıklayın ve Yapı Yolu -> Yapı Yolunu Yapılandır'ı seçin. Bu adım log4j dosyasını ekleyecektir.
- Kitaplığa gidin ve Harici JARS Ekle düğmesini tıklayın ve beliren açılır menüden log4j dosyasını seçin. Ardından Tamam'ı tıklayın.
- Log4j.properties dosyası olarak adlandıracağınız yeni bir java dosyası oluşturun, ardından bitir'e tıklayın ve bu dosyayı Classpath'e ekleyin.
- Sınıf Yolundan Gelişmiş'e tıklayın, ardından Klasör Ekle seçeneğini seçin ve Tamam'a tıklamayı unutmayın.
- Artık log4j.properties dosyasını arayabilir, Tamam'ı tıklatabilir ve projeyi çalıştırabilirsiniz.
- Aşağıdaki çıktı için konsolu kontrol edin.
[main] DEBUG Example – Hello this is a debug message [main] INFO Example – Hello this is an info message
IoC Konteyneri nedir?
IoC (Inversion of Control) kapsayıcısı, bağımlılık enjeksiyonunu otomatik olarak uygulayan bir çekirdek Spring kapsayıcıdır. Sınıfın uygulamasını başlatır ve nesnelerin yapılandırılmasından ve gerekli bağımlılıkların birleştirilmesinden sorumludur.
Ayrıca nesnenin yaşam döngüsünü, somutlaştırılmasından yok edilmesine kadar yönetir.
IoC, bu görevleri Java kodunda, XML'de ve Java ek açıklamalarında meta veri yapılandırmasını kullanarak gerçekleştirir.
Kap, Java nesnelerini ve bu nesnelerin yaşam döngülerini kontrol ettiğinden, Kontrolün Tersine Çevirilmesi olarak adlandırılır. Bu, aksi takdirde bir geliştiricinin görevidir.
Maven kullanarak Spring Boot uygulamasının nasıl oluşturulacağını açıklayın
Bu süreç bir dizi adımı içerir.
Adım 1: Proje türünü seçin.
Adım 2: Projenizi yapılandırmak için adlandırın, ardından projeyi oluşturmak için bitir düğmesine tıklayın.
Adım 3: Şimdi, Maven projesinden pom.xml dosyasını, bunun dışında bir Spring Boot projesi oluşturmak için yapılandıracağız.
pom.xml dosyası:
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.javatpoint</groupId> <artifactId>spring-boot-example</artifactId> <version>0.0.1-SNAPS<name>JavaTpoint Spring Boot Example</name> </project>
Yapılandırma, Maven projesine bir üst öğenin eklenmesini içerir. Bu, Maven projesini ana projeye bir alt proje olarak ilan edecektir.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> </parent>
Adım 4: Ardından, web bağımlılığını, spring-boot-starter-web'i pom.xml'ye ekleyin.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
Adım 5 : Projenin Java sürümünü ekleyin.
<properties> <java.version>1.8</java.version> </properties>
Adım 6: Her yeni bağımlılık eklediğinizde Maven projesini güncellemeniz gerektiğini unutmayın.
Adım 7: src/main/java paketi içinde bir Java sınıfı oluşturarak Maven projesini çalıştırılabilir hale getirin.
Adım 8: Ardından, Spring Application'ın sınıf statik çalıştırma yöntemini çağırın.
Adım 9: Son olarak sınıfı bir Java uygulaması olarak çalıştırın.
Spring Boot'un Spring'e göre avantajları nelerdir?
- Spring Boot'un önyükleme adı verilen bir teknik olan Boot başlatıcıyı kullanarak kaynak dili derleme yeteneği, kullanıcıların cihazlarında yerden tasarruf sağlar ve ayrıca uygulamanın yükleme süresini azaltır.
- Spring'den farklı olarak Spring Boot, Spring-boot bağımlılıklarını ekledikten sonra, üst POM'a (üst nesne modeli) veya XML dosyasına bağlı olmadan bağımlılıkların yönetimine izin verir.
- Spring Boot, geliştiricilerin XML yapılandırmalarını kullanmaya gerek kalmadan ek açıklamaları veya XML yapılandırmalarını kullanmalarına da olanak tanır.
- Geliştiriciler, bir uygulama kurmak için gereken azaltılmış ortak kod kodu için Spring Boot'u tercih ediyor. Bunun nedeni, Spring Boot'un bir bellek içi veritabanı ve yerleşik bir Tomcat sunucusuyla birlikte gelmesi ve ortak kodu azaltmasıdır. Spring, diğer taraftan, daha fazla kazan plakası koduna sahiptir.
- Spring Boot, mutlaka WAR(web uygulama kaynağı) dosyaları gerektirmez ve yalnızca küçük ve daha basit bir yapıya sahip olan ve bu nedenle kullanıcılar ve geliştiriciler için daha kullanışlı olan JAR(Java Resource)'a güvenebilir.
- Spring Boot, Tomcat ve Jetty gibi sunucuları da otomatik olarak gömer; bu nedenle, geliştiricinin, Spring'de yapmanız gerektiği gibi sunucuyu manuel olarak kurmasına gerek yoktur.
Spring Boot'da sayfalama nasıl yapılır?
Sayfalandırma işlemi, kaynakları korumak için verileri bölümlere ayırır. Sayfa boyutu ve sayfa numarası olmak üzere iki alan içerir.
İşlem, aşağıdakileri içeren birkaç adımı içerir:
Adım 1: İlk kurulum
Consisetupn varlığı, etki alanı sınıfı olarak Person adını vereceğiz.
@Entity public class Person { @Id private long id; private String name; }
2. Adım: Depo oluşturma
Ardından, sayfalama ve sıralama için sırasıyla findAll(Pageable pageable
) ve findAll(Sort sort)
yöntemlerini alabilmek için bir PersonRepository
PagingAndSortingRepository
extends
public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> { List<Product> findAllByPrice(double price, Pageable pageable); }
Adım 3: Sayfalandırma adımı
Buradaki ilk adım, bir PageRequest nesnesi oluşturmayı içerir; Sayfa numarasını ve sayfa boyutunu istenen şekilde geçirerek Pageable arabirimini uygular.
Pageable firstPageWithTwoElements = PageRequest.of(0,2); Pageable secondPageWithThreeElements = PageRequest.of(1,3);
Ardından bu PageRequest nesnesini bir parametre olarak depo yöntemine iletin.
Page<Person> allProducts = personRepository.findAllByPrice(findPageWithTwoElements); List<Items> allTwoDollarItems = itemsRepository.findAllByPrice(2, secondPageThreeElements)
Varsayılan olarak findAll(Pageable pageable)
yöntemi bir Page<T>
nesnesi döndürür.
Özel bir otomatik yapılandırmanın nasıl kaydedileceğini açıklayın
@EnableAutoConfiguration anahtarı META-INF/spring.factories dosyasının altında tam nitelikli adı belirtin. Bu adım, otomatik yapılandırma sınıfını kaydeder.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baeldung.autoconfigure.CustomAutoConfiguration
Projeyi Maven kullanarak inşa etmek, dosyayı kaynaklar/META-INF dizinine yerleştirmenizi gerektirecektir.
Spring Boot'da önyükleme nedir?
Önyükleme, başlangıçta Spring Boot uygulamasında mantığı yürütme işlemidir.
Boot initializr, Spring Boot'da kaynak dili derler. Bu işlem, cihaz alanından tasarruf sağlar ve uygulamanın yükleme süresini de azaltır.
Son sözler
Pekala, bu makale, görüşmecilerin muhtemelen görüşmeniz sırasında size soracakları bazı Spring Boot sorularını ve güvenle başarılı olmanıza yardımcı olacak cevapları içeriyor. Umuyoruz ki hayalinizdeki işe kavuşursunuz!
Ayrıca bir Java röportajı sırasında sorulan sorulardan birkaç alakalı ipucu öğrenmek isteyebilirsiniz.
İyi şanslar!