spring application framework
TRANSCRIPT
![Page 1: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/1.jpg)
Spring Application Framework’e Giriş
![Page 2: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/2.jpg)
Ajandamız
●Spring Nedir? ●Spring’i Öne Çıkaran Özellikler●Gelişim Süreci●Spring’i Oluşturan Modüller ve Spring
Mimarisi●Spring’deki Temel Teknolojiler
○ IoC Container ve Dependency Injection○ Aspect Oriented Programlama Altapısı○ Veri Erişim Altyapısı ve Transaction Yönetimi○ Birim Testleri Altyapısı○ Spring Web MVC
![Page 3: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/3.jpg)
Spring Öncesi Dönemin Bir Özeti
![Page 4: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/4.jpg)
Spring Nedir?
●Enterprise Java uygulamalarını kolay, hızlı ve test edilebilir biçimde geliştirmek ve monolitik uygulama sunucularının dışında ortamlarda da çalıştırabilmek için ortaya çıkmış bir “framework”tür.
![Page 5: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/5.jpg)
Spring’i Öne Çıkaran Özellikler
● POJO tabanlı bir programlama modeli sunar.○ EJB artık bir implementasyon tercihi olmuştur.
● “Program to interface” yaklaşımını temel ilke kabul etmiştir.
● İstilacı değildir!○ Uygulama kodunun framework’e bağımlı olmasına
gerek duyulmaz.● Test edilebilirlik her noktada ön plandadır.● Modüler bir frameworktür.
○ Sadece ihtiyaç duyulan modüller istenilen kapsamda kullanılabilir.
![Page 6: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/6.jpg)
Spring’in Gelişim Süreci
●Rod Johnson 2002 sonlarında Expert One on One J2EE Design and Development kitabını yazdı.
●Şubat 2003’de Spring sourceforge’da açık kaynaklı bir proje oldu.
●İlk sürüm Mart 2004’de çıktı.●2004’de Interface21 kuruldu, 2007’
de SpringSource’a dönüştü.
![Page 7: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/7.jpg)
Spring’i Oluşturan Modüller
![Page 8: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/8.jpg)
Spring Runtime Mimarisi
![Page 9: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/9.jpg)
Spring’deki Temel Teknolojiler
●IoC Container●Resource Yükleme ve Event Yönetimi●AOP●Veri Erişim Katmanı●Birim Testleri Altyapısı●Web & MVC●Güvenlik●Uzaktan Erişim(Remoting)
![Page 10: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/10.jpg)
IoC Container ve Dependency Injection
![Page 11: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/11.jpg)
IoC Container ve Dependency Injection
●IoC Container○Nesneler ve Sınıflar: En temel yapı
taşları○Sınıflardan nesneler oluşturuluyor ve
bunların bir araya getirilmesi ile de çalışan bir sistem ortaya çıkıyor.
○Spring Container nesneleri oluşturma ve bir araya getirme işine sistematik bir yol sunmaktadır.
![Page 12: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/12.jpg)
IoC Container ve Dependency Injection
![Page 13: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/13.jpg)
IoC Container ve Dependency Injection
●Bean tanımları oluşturulur ve diğer “bean”lara olan bağımlılıkları belirtilir.
●Spring Container ○ “bean”ları oluşturur ○bu tanımlara göre bağımlılıkları “bean”lara
enjekte eder●Bağımlılık yönetimi sınıfların
kendilerinden container’a geçmiştir • Inversion of Control
![Page 14: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/14.jpg)
IoC Container ve Dependency Injection
●Dependency Injection Yöntemleri○Constructor Injection○Setter Injection○Hangisi?
■Tam olarak initialize edilmiş nesneler yaratma • Constructor injection
■Tekrar konfigüre edilebilirlik •Setter injection■Bazen tercih sizden önce yapılmıştır; Legacy
kodlar
![Page 15: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/15.jpg)
IoC Container ve Dependency Injection●BeanFactory == Spring IoC Container
○ Factory pattern’ına iyi bir örnektir.●Bean tanımları = Konfigürasyon
metadata●Neden ...Bean? • “Spring managed bean”●Container konfigürasyon metadata
formatından bağımsızdır.○ XML○ Java Annotations
●Container nasıl oluşturulur?○ Programatik ve dekleratif
![Page 16: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/16.jpg)
IoC Container ve Dependency Injection●ApplicationContext, BeanFactory’nin
gelişmiş halidir.●Bean post processing, TX, AOP gibi pek çok
ilave kabiliyeti sunar.●BeanFactory mi ApplicationContext mi?●Çoğu zaman ApplicationContext’i
oluşturmak için dekleratif yol izlenir.○Web.xml, contextConfigLocation○ContextLoader ve
ContextLoaderListener
![Page 17: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/17.jpg)
Resource Yükleme ve Event Yönetimi
![Page 18: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/18.jpg)
Spring ve Aspect Oriented Programlama
![Page 19: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/19.jpg)
Spring ve Aspect Oriented Programlama
●AOP: değişik tip ve nesnelere dağılmış olan bir fonksiyonun tek bir yerde encapsule edilerek yapılan programlamadır.
●OOP’da yapı taşları: sınıf ve nesneler
●AOP’da yapı taşı: aspect●OOP’u tamamlayan bir yaklaşım
sunar.
![Page 20: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/20.jpg)
Spring ve Aspect Oriented Programlama●TX yönetimi, loglama, güvenlik gibi
altyapısal ihtiyaçlar en iyi AOP ile çözülür.●Spring’in en temel bileşenlerinden
birisidir.●Spring, hem kendi AOP framework’ünü, hem
de AspectJ’yi sunmaktadır.●Spring AOP: proxy tabanlı bir aspect
oriented programlama framework’üdür.
![Page 21: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/21.jpg)
Temel AOP Kavramları
●Aspect: değişik nesnelere dağılmış fonksiyonun tek bir noktada toplanmış halidir.
●Join point: programın çalışma esnasındaki bir andır.○ Metod’a girmeden önceki an○ Bir exception fırlatırken,○ Metod çıkışı,○ Bir field’a erişim anı vs.
●Pointcut: join point’le eşleşen bir predicate’dir. (pointcut expression’lar)
![Page 22: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/22.jpg)
Temel AOP Kavramları
●Advice: Belirli bir join point’de herhangi bir aspect tarafından gerçekleştirilen aksiyondur.
●Weaving: Aspect ve sınıf kodlarının bir birleştirilmesi işlemidir.○Derleme, sınıfların yüklenmesi veya
uygulamanın çalışması sırasında yapılabilir.
![Page 23: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/23.jpg)
Spring AOP’un Özellikleri
●Tam bir AOP çözümü olma iddiasında değildir.
●AOP ve IoC Container arasında sağlam bir entegrasyon kurmayı hedeflemiştir.
●Sadece method execution join point’leri destekler.
![Page 24: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/24.jpg)
Spring AOP’un Özellikleri
●Proxy tabanlıdır○ JDK proxy, default○CGLIB proxy
●AspectJ ile entegredir.
![Page 25: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/25.jpg)
Interceptor Mekanizmasının Çalışma Şekli
İstemci
AOPproxy
Auditingintercep
tor
Securityintercep
tor
TX intercep
tor
Hedef Nesne
İstemci proxy’yi çağırır
Proxy interceptor chain’i uyandırır
Interceptor chain’insonunda hedef nesnemetodu çağırılır
![Page 26: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/26.jpg)
Spring ve Aspect Oriented Programlama●Aspect konfigürasyonları XML veya
annotasyonlar vasıtası ile yapılabilir.●Spring AOP ve AspectJ her ikisi de beraber
kullanılabilir.●Ne zaman Spring AOP, ne zaman AspectJ
kullanmalıyız?○ Spring tarafından yönetilmeyen bean’larda○ Method execution joinpoint dışında kullanım
ihtiyacı olduğunda AspectJ kullanılmalıdır.
![Page 27: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/27.jpg)
Spring ile Veri Erişimi
![Page 28: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/28.jpg)
Spring ile Veri Erişimi
●Spring kapsamlı bir transaction yönetim altyapısına sahiptir.
●Değişik teknolojiler için kullanımı kolay ve standart bir veri erişim desteği sunar.○ JDBC ile JdbcTemplate○ ORM araçları ile
■ HibernateTemplate■ JpaTemplate...
●Değişik veri erişim teknolojilerinin exception hiyerarşilerini standard bir exception hiyerarşisine çevirir.
![Page 29: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/29.jpg)
JDBC ile Veri Erişimi
●JDBC ile adım adım veri erişimi:○ Veritabanı bağlantı parametrelerinin belirtilmesi
ve bağlantının kurulması○ JDBC Statement’ın oluşturulması○ Oluşturulan Statement’ın derlenip çalıştırılması○ Dönen ResultSet üzerinde işlem yapan bir
döngünün kurulması○Bu döngü içerisinde her bir kaydın işlenmesi○ Meydana gelebilecek hataların ele alınması○ Transaction’ın sonlandırılması ve veritabanı
bağlantısının kapatılması
![Page 30: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/30.jpg)
JDBC ile Veri Erişimi
●JdbcTemplate temel yapı taşıdır.●JDBC katmanı JdbcTemplate üzerine
kurulmuştur; NamedParameterJdbcTemplate, SimpleJdbcTemplate, SimpleJdbcInsert, SimpleJdbcCall, StoredProcedure...
●Çalışması için DataSource nesnesine ihtiyaç vardır.
![Page 31: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/31.jpg)
JDBC ile Veri Erişimi
●Uygulama geliştiricilerin JdbcTemplate ile çalışırken sadece “callback interface” yazmaları yeterlidir.
●ThreadSafe’dir, birden fazla nesne tarafından kullanılabilir.
![Page 32: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/32.jpg)
ORM ile Veri Erişimi
●Entegre bir transaction yönetim altyapısı üzerinden çalışır.
●JDBC işlemleri ile ORM işlemlerini aynı TX içerisinde beraber kullanabilirsiniz.
●Ortak bir veri erişim exception hiyerarşisi sunar.
●Entegrasyon birim testlerinin çalıştırılmasını kolaylaştırır.
![Page 33: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/33.jpg)
Hibernate ile Veri Erişimi
●Hibernate için gerekli kaynakların yönetimi için esnek bir altyapı sunar.○LocalSessionFactoryBean○ JNDI üzerinden SessionFactory nesnesine
erişim; JndiObjectFactoryBean
![Page 34: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/34.jpg)
Hibernate ile Veri Erişimi
●HibernateTemplate○Hibernate Session’ın sunduğu
metodları sunar.○Hibernate Session’ın sağlıklı
biçimde açılıp, kapatılmasını ve TX’e dahil olmasını garanti eder.
○Hibernate Session’a her zaman doğrudan erişim imkanı sağlar; (callback interface)
![Page 35: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/35.jpg)
Spring ve Transaction Yönetimi
●Değişik Transaction API’leri üzerine kurulmuş tek ve daha basit bir transaction programlama API’si sunar.
●Spring’in değişik veri erişim yöntemleri ile tam manada entegre çalışmaktadır.
●Global ve lokal transactionları destekler.
![Page 36: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/36.jpg)
Spring ve Transaction Yönetimi
●PlatformTransactionManager temel sınıftır.
●HibernateTransactionManager’dan JtaTransactionManager’a geçiş için sadece bean tanımlarında değişiklik yeterlidir.
●Dekleratif ve programatik TX yönetimi mümkündür.
![Page 37: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/37.jpg)
Dekleratif Transaction Yönetimi
●Altında Spring AOP yatmaktadır.●Kullanmak için AOP bilmenize gerek
yoktur!●Her tür platformda çalışabilir.●Kendinize özgü rollback kuralları
tanımlayabilirsiniz.●Transaction öncesinde ve sonrasında
size özgü kod çalıştırabilirsiniz.
![Page 38: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/38.jpg)
Spring ve Transaction Yönetimi
●Transaction yönetimi için gerçekten bir uygulama sunucusuna gerek var mıdır?
●Global transaction ihtiyacı durumunda uygulama sunucusuna ihtiyacınız olabilir. (Bu durumda standalone tx manager’lar da bir alternatif olabilir.)
●Birden fazla veri kaynağının senkronizasyonu söz konusudur.
●EJB ve CMT bir çözümdür, ancak sizi daha ilk andan itibaren JTA’ya mahkum eder.
![Page 39: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/39.jpg)
Spring ve Transaction Yönetimi
●Pek çok uygulama da lokal transactionlar yeterlidir.
●Tek bir veri kaynağı söz konusudur.●Spring’in
PlatformTransactionManager soyutlaması sayesinde uygulamanız lokal transaction’lardan global transaction’lara transparan biçimde geçiş yapabilir.
![Page 40: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/40.jpg)
Spring ve Transaction Yönetimi
●Spring ile transaction yönetimi hem en alt düzeyde hem de en üst düzeyde gerçekleştirilebilir.
●Üst düzey: Değişik veri erişim teknolojileri için benzer yapıda Template sınıfları kullanılır.○ JdbcTemplate, HibernateTemplate,
JpaTemplate...●Alt düzey: Utility sınıfları ile Spring
tarafından yönetilen veri kaynaklarına erişim, bunları senkronize edilmesi sağlanır.○DatasourceUtils,SessionFactoryUtils,
EntityManagerUtils...
![Page 41: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/41.jpg)
Spring ve Test Driven Progranlama
![Page 42: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/42.jpg)
Spring ve Test Driven Progranlama
●Testler, birim ve entegrasyon testleri kurumsal yazılım geliştirmenin temel bir parçasıdır.
●Geliştirme ortamı ve altyapı, testlerin kolay yazılır ve çalıştırılabilir olmasını sağlamalıdır.
![Page 43: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/43.jpg)
“Test için zamanımız yok!” Kısır Döngüsü
Stres
Test yazma ve çalıştırma
![Page 44: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/44.jpg)
Spring ve Test Driven Progranlama
●Entegrasyon testlerinin standalone ortamda yazımı ve çalıştırılması ile:○ApplicationContext’i oluşturan bean
tanımlarının doğru yapılıp yapılmadığının kontrolü sağlanır.
○JDBC ve ORM araçları ile veri erişiminin testi yapılır.
○SQL, HQL sorgularının, entity mapping’lerin kontrolü yapılır.
![Page 45: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/45.jpg)
Spring TestContext Framework
●Annotasyonlar ve generics üzerine kurulu bir test altyapısıdır.
●JUnit 3.8, 4.4 ve TestNG desteği vardır.●“Convention over configuration” ön
plandadır.
![Page 46: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/46.jpg)
Spring TestContext Framework
●ApplicationContext yönetimi ve cache desteği sağlar.
●TestCase içerisinden ApplicationContext’e erişmek için ApplicationContextAware arayüzünü implement etmek yeterlidir.
●Test metodlarının transactional context içerisinde çalıştırılması mümkündür.
![Page 47: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/47.jpg)
Spring TestContext FrameworkTemel Elemanları●TestContext
○ Her bir testin çalıştırıldığı context’i encapsule eder.○ Asıl test framework’ünden (JUnit, TestNG)
habersizdir.●TestContextManager
○ TestContext nesnelerini ve testlerin çalışması sırasında meydana gelen “event”leri yönetir.
●TestExecutionListener○ DependencyInjectionTestExecutionListener,
TransactionalTestExecutionListener gibi hazır nesneler vardır.
![Page 48: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/48.jpg)
Spring Web MVC Framework
![Page 49: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/49.jpg)
Spring Web MVC Framework
●DispatcherServlet etrafında kurulu bir frameworktür.
●Front Controller pattern’ına iyi bir örnektir.●POJO tabanlı bir programlama modeli
sunar.●Ayarlanabilir view, locale ve tema
çözümleme altyapısı vardır.●Diğer Web MVC framework’lerini de
kullanmaya imkan sağlar.
![Page 50: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/50.jpg)
Spring Web MVC Framework
![Page 51: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/51.jpg)
DispatcherServlet
●Gelen web isteklerini Handler nesnelerine “dispatch” eder.
● “Handler mapping”leri ayarlanabilir.●WebApplicationContext nesnesini yönetir.●ViewResolvers, LocaleResolvers,
ThemeResolvers, MultipartFileResolvers, HandlerExceptionResolvers gibi özel bean’lar mevcuttur.
![Page 52: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/52.jpg)
DispatcherServlet’in Bir Web İsteğini Ele Alması
1.WebApplicationContext nesnesi request üzerinden erişilebilir kılınır.
2.Mevcut locale ve theme resolver bean’ları request ile ilişkilendirilir.
3.Eğer bir multipart resolver varsa, gelen request multipart veriye göre incelenir.
![Page 53: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/53.jpg)
DispatcherServlet’in Bir Web İsteğini Ele Alması
1.Uygun handler bean’ı tespit edilir.2.Eğer bir view bilgisi dönülmüş ise bu view
render edilir.3.Fırlatılan exceptionlar varsa bunlar
HanlderExceptionResolver bean’ları tarafından ele alınır.
![Page 54: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/54.jpg)
Spring ve Güvenlik
![Page 55: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/55.jpg)
Spring ve Uzaktan Erişim
![Page 57: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/57.jpg)
Yararlanılan Kaynaklar
●Spring 2.5.x Referans Dokümanı●TSS Arşivi- Introduction to the Spring
Framework Makalesi, Rod Johnson●Spring In Production Makalesi, Adrian Colyer
(I. Bölüm ve II. Bölüm)●Wikipedia – Spring Framework http://en.
wikipedia.org/wiki/Spring_framework●Test Driven Development by Example , Kent
Beck
![Page 58: Spring application framework](https://reader035.vdocuments.site/reader035/viewer/2022062419/55ac4b3c1a28abad2b8b463c/html5/thumbnails/58.jpg)
Sorular ve Cevaplar