Tarafından geliştirildi | Önemli Yazılım ( içinde ) |
---|---|
İlk versiyon | 25 Haziran 2003 |
Son sürüm | 5.3.4 (16 Şubat 2021) |
Depozito | github.com/spring-projects/spring-framework |
Yazılmış | Java , Kotlin ve Groovy |
Çevre | Çapraz platform |
Tür |
Web çerçevesi ( tr ) Framework Java kitaplığı ( d ) |
Lisans | Apache lisansı |
İnternet sitesi | spring.io/projects/spring-framework |
Gelen BT , Bahar bir olan açık kaynak çerçevesi bir alt yapısını oluşturmak ve tanımlamak için Java uygulaması o kolaylaştırır, gelişimini ve test.
2004 yılında Rod Johnson , Bahar'ın yaratılmasının nedenlerini açıklayan Uzman Bire Bir J2EE Tasarım ve Geliştirme kitabını yazdı .
Yay, sözde "hafif" bir kap olarak kabul edilir. Bu adlandırmanın nedeni Erik Gollot tarafından Bahar çerçevesine Giriş belgesinin girişinde açıklanmıştır .
"Spring" aslında "hafif" bir konteyner, yani bir J2EE uygulama sunucusuna benzer bir altyapıdır . Bu nedenle, üretilecek nesneleri ve bu nesneler arasındaki bağımlılık ilişkilerini tanımlayan bir yapılandırma dosyası aracılığıyla nesnelerin oluşturulmasını ve nesnelerin bağlanmasını destekler. Uygulama sunucularına göre en büyük avantajı, Spring ile sınıfların çerçeve tarafından desteklenecek herhangi bir arabirim uygulamasına gerek olmamasıdır ( J2EE uygulama sunucuları ve EJB'lerin aksine ). Bu anlamda Bahar, "hafif" bir kap olarak nitelendirilir. "
Bahar, temel olarak üç temel kavramın entegrasyonuna dayanmaktadır:
Soyutlama katmanı, diğer çerçeveleri ve kitaplıkları entegre etmeyi kolaylaştırır . Bu, belirli çerçevelere özgü soyutlama katmanları sağlayarak veya eklemeyerek yapılır. Böylece e-postaları daha kolay göndermek için bir modül entegre etmek mümkündür.
İlk ikisi Bahar tarafından en çok kullanılanlardır.
Bu çerçeve, soyutlama katmanı sayesinde, Model-View-Controller mimari modelinin belirli bir katmanındaki diğer çerçevelerle rekabet etmez, ancak tüm katmanların düzeyinde eklenebilen çok katmanlı bir çerçeve olduğu ortaya çıkar; model, görünüm ve denetleyici. Böylece kalıcılık katmanı için Hibernate veya iBATIS'i ve hatta sunum katmanı için Struts ve JavaServer Faces'ı entegre etmeye izin verir .
Baharın özü şunlara dayanır:
Dahası, Spring'in çekirdeği, kontrolü tersine çevirme adı verilen teknikle bu bileşenlerin kontrolünü dışardan zorlamayı mümkün kılar .
Ana avantaj, fasulyeleri zorunlu olarak programda değil, daha açıklayıcı bir şekilde oluşturmaktır. Fasulye, Java veya XML'deki yapılandırma dosyaları aracılığıyla tanımlanabilir .
Kullanım örneğiAşağıdaki örnekte, iki singleton fasulye tanımlanmıştır. Birincisi, ürünler için bir veri erişim nesnesidir ve onu bir ürün yöneticisi olan ikinciye enjekte ederiz.
@Configuration public class AppConfig { @Bean public ClientService clientService(ClientDao clientDao) { ClientService clientService = new ClientServiceImpl(); clientService.setClientDao(clientDao); return clientService; } @Bean public ClientDao clientDao() { return new ClientDaoImpl(); } }Örneğin, bir arama sırasında, Spring konteynerinden veri erişim nesnesini kullanacak ürün yöneticisini sağlaması istenecektir.
Çeşitli Spring Framework modülleri, aşağıdakiler dahil olmak üzere diğer kitaplıklar ve çerçevelerle entegrasyona izin vermek için temel çekirdeği tamamlar: