Spring Java geliştiricileri tarafından kullanılan en popüler framework olarak biliniyor, en azından uygulama oluşturma konusunda. İşe bu yüzden işverenler Java geliştiricileri ve programcıları ararken hem Java'ya hem de Spring'e yetkin kişileri arıyor. Geliştirici olarak iş arıyorsanız Spring'de deneyimli olmanız gerekiyor. Spring mülakat soruları rehberimizi size iş görüşmelerinde yardımcı olması için hazırladık.
İş görüşmesi soruları ve cevapları üzerine konuşacağımız bu rehberde öncelikle temel düzey Spring mülakat soruları ile ilgilenecek, sonrasında Spring kullanımı konusunda ileri düzey sorulara göz atacağız. Sorular bitince ufak bir özet yapıp gelecekle ilgili bazı ipuçları vereceğiz.
İçindekiler
- 1. Temel Düzey Spring Mülakat Soruları
- 1.1. Soru 1: Spring nedir?
- 1.2. Soru 2: Spring'in kaç sürümü var?
- 1.3. Soru 3: Spring'in ana avantajları neler?
- 1.4. Soru 4: Spring Framework'ün hangi özelliklerini dile getirebilirsiniz?
- 1.5. Soru 5: "MVC" nedir?
- 1.6. Soru 6: "Dependency injection" nedir?
- 1.7. Soru 7: "Boot" nedir?
- 1.8. Soru 8: "XML dosyası" nedir?
- 1.9. Soru 9: Spring'te kaç farklı modül var?
- 1.10. Soru 10: "IOC"yi tanımlayın.
- 1.11. Soru 11: "Bean" nedir?
- 1.12. Soru 12: Bean eklemek için neden "constructor injection" kullanmalısınız?
- 1.13. Soru 13: "Join point" nedir?
- 1.14. Soru 14: AOP nedir?
- 1.15. Soru 15: Boot "Initilizr"ın kullanım alanı nedir?
- 1.16. Soru 16: "Advice" nedir?
- 1.17. Soru 17: Dependency Injection gerçekleştirmek için kaç yol var?
- 1.18. Soru 18: Spring Framework kullanmanın yolları neler?
- 1.19. Soru 19: AOP (aspect orientated programming) terminolojisi nedir?
- 1.20. Soru 20: JoinPoint nedir?
- 2. İleri Düzey Spring Mülakat Soruları
- 2.1. Soru 1: IOC'nin iki türü arasında herhangi bir fark var mı?
- 2.2. Soru 2: "Annotation wiring" neden çalışmaz?
- 2.3. Soru 3: "Concern" ve "cross-cutting" concern arasındaki fark nedir?
- 2.4. Soru 4: "Autowriting" nedir?
- 2.5. Soru 5: "Weaving" ne için kullanılır?
- 2.6. Soru 6: Spring'te işlemleri nasıl yönetebilirsiniz?
- 2.7. Soru 7: "Target object" nedir?
- 2.8. Soru 8: @Controller ne işe yarar?
- 2.9. Soru 9: DAO nedir?
- 2.10. Soru 10: @Autowired ne işe yarar?
- 2.11. Soru 11: @RequestMapping ne işe yarar?
- 2.12. Soru 12: MVC Interceptor nedir?
- 2.13. Soru 13: "Introduction"ın kullanımı nedir?
- 2.14. Soru 14: @Autowire ve @Qualifier birlikte kullanılırsa ne olur?
- 2.15. Soru 15: Annotation-based container configuration nedir?
- 3. Özet
Temel Düzey Spring Mülakat Soruları
İş görüşmesi soruları ve cevapları için "Spring nedir?" gibi temel düzey sorulardan başlamak gerek. Bu temel bilgiler oldukça önemli. Deneyimli bir Spring geliştiricisiyseniz muhtemelen ezbere biliyorsunuz.
Şu Anda Etkin Olan Güncel Teklifler:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Soru 1: Spring nedir?
Spring mülakat soruları hakkında detaylı bilgi sahibi olmak, interceptor'lar ve joinpoint'ler hakkında konuşmak için öncelikle Spring nedir iyi bilmek gerekiyor. Gereksiz bir tekrar da değil üstelik; görüşmeyi gerçekleştiren kişiler görüşmenin başında bilginizi ölçmek isteyebilirler.
Spring kullanımı hakkında böyle iş görüşmesi soruları ve cevapları için her zaman kendi cümlelerinizle kurduğunuz tanımlamaları seçin. Görüşmeyi gerçekleştiren kişiler sayfaları bir robot gibi ezberlemediğiniz, konuya hakim olduğunuzu anlayacaktır.
Nerede kalmıştık? Ah, evet, Spring nedir?
Spring açık kaynaklı, Java tabanlı bir framework'tür. Belli web uygulamalarını oluşturmak konusunda Java geliştiricilerine yardımcı olmak adına tasarlanmıştır.
Soru 2: Spring'in kaç sürümü var?
Spring'in toplamda üç büyük sürümü var: Spring 2.5, Spring 3.0 ve Spring 4.0.
Soru 3: Spring'in ana avantajları neler?
Gerçeği söylemek gerekirse Spring mülakat soruları arasında daha subjektif olan sorulardan bir tanesi. Cevabı neredeyse görüşe dayalı. Spring kullanırkenki kendi deneyiminizi düşünün ve framework'ün en iyi özelliği olarak tanımlayacağınız söyleri söyleyin.
En popüler cevaplara örnekler şunlar: açık kaynaklı olma, önceden hazırlanmış şablonlar, kullanım kolaylığı, test vb.
Soru 4: Spring Framework'ün hangi özelliklerini dile getirebilirsiniz?
Bu büyük özelliklerden en azından bazılarını söylemek iyi olacaktır:
- Boyun ve saydamlık açısından hafif sıklet.
- Spring Framework'ünde nesneler bağımlı nesneler oluşturmak veya aramak yerine kendi bağımlılıklarını verir. Bu işleme Inversion of Control (IOC) adı verilir.
- Spring Framework'ünde aspect orientated programming uygulama iş mantığını sistem hizmetlerinden ayırarak kohesif gelişimi destekler.
- Spring Framework'ün yaşam döngüsü ve uygulama nesnelerinin yapılandırmasını oluşturur ve yönetir.
- Spring'teki Model-View-Control web uygulama framework'ü yüksek yapılandırılabilirliğe sahip. AYrıca diğer framework'lerin yerine kullanılmasına da olanak sağlar.
- Spring Framework'ü işlem yönetimi için jenerik soyutlama katmanı sunar.
- Spring hata yönetim strajetisini basitleştiren Java Database Connectivity katmanı sunar.
Soru 5: "MVC" nedir?
İş görüşmesi sırasında MVC hakkında gelebilecek Spring mülakat soruları arasında yer alıyor.
MVC Model View Controller ifadesinin kısaltmasıdır. Spring framework'ünün bir parçasıdır. MVC farklı web uygulamalarının oluşturulmsı için de kullanılıyor.
Soru 6: "Dependency injection" nedir?
Dependency injection nesneler için belli bağlımlılıklar sağlamak için kullanılıyor. Projenizi sorunsuz ve test gibi eylemlere daha uygun hale getiren bir tasarım modelidir.
Soru 7: "Boot" nedir?
Bu soru Spring mülakat soruları içerisinde boot konusunda başı çekiyor. Muhtemelen fark etmiş olacağınız üzere sadece Spring kullanımı ile alakalı şeyler sorulmuyor. Çok kolay olurdu! Tüm çeşitli eklentiler ve güncellemeler hakkında da soru soruluyor.
Spring Boot uygulama oluşturma sürecini daha elverişli hale getirmeyi hedefleyen bir Spring sürümü. Ana özelliklerinden bir tanesi basmakalıp yapılandırmaları tanımlama ihtiyacını ortadan kaldırması. Pek çok geliştiriciyi mutlu eden bir özellik.
Soru 8: "XML dosyası" nedir?
XML bir Spring yapılandırma dosyası. Farklı class türleri ve birbiriyle nasıl ilişkili oldukları hakkında tüm bilgileri içeren ana dosya.
Soru 9: Spring'te kaç farklı modül var?
Spring mülakat soruları içerisinde önemli olanlardan bir tanesi. Spring'te yirmiye yakın modül var. Hepsi ayrı konteynerlere bölünmüş. Konteynerler şu şekinde; core konteyner, web konteyneri, data access konteyneri, aspect ve instrumentation konteyneri ve test konteyneri. Birçok daha ufak konteyner daha var.
Soru 10: "IOC"yi tanımlayın.
IOC Inversion of Control ifadesinin kısaltması. Spring'in core konteyneri. Çeşitli entegre uygulamaları yapılandırmak ve yönetmek için daha önce bahsettiğimiz dependency injection'ı kullanıyor. Spring'te şu an iki tür IOC var; ApplicationContext ve BeanFactory.
Soru 11: "Bean" nedir?
"Bean" IOC konteyneri tarafından entegre edilmiş ve yapılandırılmış bir nesne.
Soru 12: Bean eklemek için neden "constructor injection" kullanmalısınız?
Böyle Spring mülakat soruları ile oyuna gelmeyin. constructor injection sadece zorunlu bağlımlılıkları eklemek için kullanılıyor.
Bu ekleme türünü kullanmanız sebebi ise çok basit. Ekleme türü sonraki test işlemlerini çok daha kolay hale getiriyor.
Soru 13: "Join point" nedir?
Join point programda AOP framework'ünün başlatıldığı ve uygulandığı bir noktayı temsil ediyor.
Soru 14: AOP nedir?
AOP ifadesi Aspect-Oriented Programming ifadesinin kısaltması. OOP'den (Object-Oriented Programming) farkı OOP'nin class'lara odaklanırken AOP'nin ana modülarite biriminin aspect olması. AOP'de aspect'ler cross-cuting concern'leri uygular ve belirtir.
Soru 15: Boot "Initilizr"ın kullanım alanı nedir?
"Initilizr" Spring mülakat soruları içerisinde sık karşılaşılan bir konu. Oldukça önemli bir bileşen olduğundan biraz bahsedelim.
Geliştiricilerin "Initilizr" kullanmasının sebebi olabildiğince kısa zamanda verimliliği maskimuma çıkarmak istemeleri. Projeniz için ön şablon oluşturduğundan ve script oluşturma işlemini basitleştirdiğinden muhteşem bir araç.
Soru 16: "Advice" nedir?
Hatırlarsanız AOP'nin devreye girdiği "join point"lerden bahsetmiştik. Join point içerisinde bir aspect belli bir tür eylem gerçekleştirildiğinde bu eyleme "advice" adı veriliyor.
Soru 17: Dependency Injection gerçekleştirmek için kaç yol var?
Bunun için üç yol var:
- Constructor Injection
- Setter Injection
- Interface Injection
Spring Framework'ünde çoğunlukla constructor ve setter injection'ları kullanılıyor.
Soru 18: Spring Framework kullanmanın yolları neler?
- Spring Framework'nün orta düzeyinden faydalanarak üçüncü parit web framework'ü gibi kullanma.
- Uzaktan kullanma.
- Tam teşekküllü Spring web uygulaması olarak kullanma.
- Mevcut Plain Old Java Object'lerii (POJO'lar) sarabilen bir Enterprise Java Bean olarak kullanma.
Soru 19: AOP (aspect orientated programming) terminolojisi nedir?
- JoinPoint
- Advice
- Pointcut
- Aspect
- Introduction
- Target Object
- Interceptor
- AOP Proxy
- Weaving
Soru 20: JoinPoint nedir?
Programda field of access, method execution, exception handling veya benzeri herhangi bir noktadır.
İleri Düzey Spring Mülakat Soruları
Temel düzey Spring mülakat soruları umarım konuya ısınmanızı sağlamıştır çünkü sırada deneyimli geliştiriciler ve programcılar için ileri düzey Spring mülakat soruları var.
İleri düzey sorular içerisinde muhtemelen tüm olası sorulara yer vermek mümkün değil. Bu yüzden karşınıza çıkabilecek ana sorulara yer vermee çalıştım. Spring mülakat soruları rehberimizi okuduktan sonra benzer sorulara göz atabilirsiniz. Böylelikle karşınıza çıkabilecek soruların çoğuna bakmış olursunuz.
Soru 1: IOC'nin iki türü arasında herhangi bir fark var mı?
Hatırlarsanız temel düzey Spring mülakat soruları arasında IOC'yi açıklamak vardı. İki tür IOC var demiştik, ApplicationContext ve BeanFactory.
İki IOC türü arasında tek bir ana fark var; ApplicationContext ileri düzey bir konteyner iken BeanFactory basit olan. Yani BeanFactory'nin fonksiyonlarının devamı ApplicationContext'te.
Soru 2: "Annotation wiring" neden çalışmaz?
Bu soru için muhtemelen açıklamanız için bir durum sunulur. Burada potansiyel işvereniniz "annotation wiring"in bir sebepten ötürü çalışmadığını vurguluyor. Sebebi de muhtemelen çok basi.
Varsayılan olarak annotation wiring kapalı olur. Çalışması için yapılandırma dosyalarından etkinleştirmeniz gerekir.
Soru 3: "Concern" ve "cross-cutting" concern arasındaki fark nedir?
Özellikle ileri düzey geliştiriciler için çok fazla karşılaştırmalı Spring mülakat soruları var. "Concern" projenize (uygulamaya) belli bir tekip fonksiyon eklemek istediğinizde kullanılıyor. "Cross-cutting" concern'ler tüm projeye uygulanıyor. Uygulamanızdaki tüm modüller etkileniyor.
Soru 4: "Autowriting" nedir?
"Autowriting" gelişticiye uygulamasına otomatik olarak manuel etkileşim gerektirmeden bean ekleme imkanı sunuyor.
Soru 5: "Weaving" ne için kullanılır?
"Weaving" advised object oluşturmak için kullanılıyor. Uygulamanın diğer belli nesnelerine belli aspect'ler bağlanarak gerçekleştiriliyor.
Soru 6: Spring'te işlemleri nasıl yönetebilirsiniz?
Spring iki tür işlem yönetimi sunuyor: Declarative ve programmatic.
Declarative işlem yönetimi kodunuzu işlemlerden ayırmanızdır. Spring mülakat soruları içerisinde hatırlarsanız XML'den bahsetmiştik. Önemli olmasının sebebi çoğu geliştiricinin işlemlerin yönetimi şeklini değiştirmek için XML yapılandırmalarına geçmesi.
Programmatic işlem yönetiminde işlem yönetiminizin içerisinde iş kodunuz yer alıyor. İşlem yönetmek için daha az popüler olan bir tercih. Birkaç sebebi var ancak asıl sebep kodla alakalı. Bazı programcılar işlem sırasında bazı şeyleri bozmamak için kodla uğraşmak istemiyor.
Soru 7: "Target object" nedir?
Bir nesne aspect'ler için ilgi merkezi haline gelince otomatik olarak target object olur. Bazı insanlar buna "advised object" adını verir.
Soru 8: @Controller ne işe yarar?
@Controller özellikle belirlenmiş Spring class'ını controller class olarak adlandırır.
Soru 9: DAO nedir?
Spring mülakat soruları içerisinde DAO Data Access Object ifadesinin kısaltmasıdır. Bu araç geliştiricilere özellikle Java kaynaklı veri erişim araçlarıya daha kolay çalışma imkanı sunar.
Soru 10: @Autowired ne işe yarar?
@Autowired komutu size nesnenizi nereye bağlamak istediğiniz konusunda karar verme esnekliği sunar. Bu komut işlemleri çok daha kolay ve sorunsuz hale getirir. Yüksek doğruluk sağlar.
Soru 11: @RequestMapping ne işe yarar?
Bu komut belli bir HTTP yöntemini özel bir class'a eşlemek istediğinizde kullanılır. Bu komutu hem class hem de method düzeylerinde kullanabilirsiniz.
Soru 12: MVC Interceptor nedir?
Spring MVC'de interceptor'lar işlemeden önce, işleme sırasında ve işleme sonrasında bir istemcinin talebini yerine getirmek için kullanılır. Kodda istenmeyen herhangi bir tekrardan sakınmak için muhteşem bir araçtır.
Soru 13: "Introduction"ın kullanımı nedir?
"Introduction" komutu Spring'e tekrardan göndermilmiş bir class'a yeni özellikler ekleme imkanı sunar.
Soru 14: @Autowire ve @Qualifier birlikte kullanılırsa ne olur?
Bu kombinasyon türü uygulamada birçok farklı türde tekil bean bulunduğunda kullanılır. Bu kombinasyon her bir ayrı bean'i farklılaştırır.
Fark edeceğiniz üzere "@" ile çok Spring mülakat sorusu var. İşte bu yüzden "@" controller'larının her birinin ne yaptığını bilmek önemli. Bu yüzden mümkün olduğunca ezberleyin!
- Kullanması kolay
- Kaliteli içeriğe sahip
- Fiyat konusunda saydam
- Tamamlamada ücretsiz sertifikalar
- Veri bilimi becerilerine odaklanıyor
- Esnek eğitim programları
- Basit tasarım (gereksiz bilgi yok)
- Yüksek kaliteli dersler (ücretsizler dahil)
- Çeşitli özellikler
- Nanodegree programları
- Firmalara uygun
- Ücretli tamamlama sertifikası
- Sektörde iyi biliniyor
- Pek çok özelliğe sahip
- Dersler üniversite düzeyinde
- Üniversite düzeyince dersler
- Şirketler için uygun
- Ücretli tamamlama sertifikası
Soru 15: Annotation-based container configuration nedir?
Daha önce bahsettiğimiz XML'e alternatif bir container configuration'dır. Bu tür yapılandırma esasen bytecode metadata'ya odaklanır.
Biliyor Muydunuz?
Kariyeriniz için hangi online eğitim platformunun daha iyi olduğunu merak etmiş miydiniz?
Özet
Size verebileceğim en önemli ipucu (en azından Spring mülakat soruları hakkında) olabildiğince farklı soru varyasyonlarına göz atmanız. Rehberimizden rastgele bir soru seçin, terimlerin daha geniş tanımları için google'ı kullanın ve karşılaştığınız benzer sorulara göz atın.
Spring mülakat soruları sorulduğunda özellikle tanım içerikli olanlarda kendi fikirlerinizi de eklemeyi deneyin. İşverenleriniz karmaşık terimleri ve konseptleri kendi kelimelerinizle açıklamaya çalışmanızı takdirle karşılayacaktır. Boot ve MVC sorularına tekrardan göz atmayı unutmayın. Ana olayın eklentileri olduğundan öyle ya da böyle sorulacaklardır.