Spring Framework Eğitimi



Benzer belgeler
19 Şubat 2016 Cuma

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

Spring Framework Eğitimi

2. Bölüm Spring İle Tanışalım

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Spring Framework Eğitimi

Burak Kıymaz JAVA FX

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

.com. Özcan Acar 2009 Kurumsal Java.com

BMH-303 Nesneye Yönelik Programlama

BİL-141 Bilgisayar Programlama I (Java)

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Flyweight (Sinek Siklet) Tasarım Şablonu KurumsalJava.com

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Erişim konusunda iki taraf vardır:

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

Şablon Türler (Generics)

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

Business Delegate Tasarım Şablonu KurumsalJava.com

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Java Kodunuzun Nesne-Merkezli Olmadığının 10 İşareti

7. HAFTA. Erişim Belirleyiciler

BMH-303 Nesneye Yönelik Programlama

int printf (const char *format [, argument,...]);

BİL-141 Bilgisayar Programlama I (Java)

Android Ders Notları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Builder Tasarım Şablonu KurumsalJava.com

YAZILIM ÜRÜN HATTI DEĞĐŞKENLĐĞĐNĐN DENETĐM ÇEVRĐMĐ ĐLE ELE ALINMASI

Proxy (Vekil) Tasarım Şablonu KurumsalJava.com

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Merge (Bireşim) Algoritmayı önce bir örnek üzerinde açıklayalım.

Karşılaştırma İşlemleri ve Koşullu İfadeler

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

JSF Melih Sakarya. Java Server Faces Facelet

Java. Mustafa OF. Kocaeli Üniversitesi Kocaeli Meslek Yüksekokulu (Mart 2007)

YZM311 YAZILIM YAPIMI BÖLÜM 4 TASARIM KALIPLARI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

JavaFX Temelleri (2)

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Android ile SQLLite Veri Tabanı

JavaTürk. Java Kod İsimlendirme ve Şekil Standardı

Spring Application Framework Harezmi Bilişim Çözümleri

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Java String İşlemleri

BLM5504 NESNEYE DAYALI KAVRAMLAR VE PROGRAMLAMA Şubat 2016 Yrd.Doç.Dr. Mehmet Sıddık AKTAŞ GENEL BİLGİLER

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

Dr. Fatih AY Tel: fatihay@fatihay.net

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

BMM3101 PROGRAMLAMA DİLLERİ

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Adapter Tasarım Şablonu

ile Python gibi kod yazma

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Java Class Yapısında Finalize Metotunun Kullanımı

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Client Server Database

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 8: Sınıf (Class) Yapılarına Giriş

Inheritance. Inheritance (turetim)

Java Programlama. İstisnalar, Numaralandırmalar, Otomatik Kutulama ve Açıklama Notları

Nesneye Yönelik Programlama-JAVA, Ders sorumlusu Yrd.Doç.Dr.Hilmi KU ÇU

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

MOBİL UYGULAMA GELİŞTİRME

KUYRUKLAR. Doç. Dr. Aybars UĞUR

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 18: Formatlı Grafik Kullanıcı Arayüzü Oluşturma

C Operatörler. Öğr. Gör. M. Ozan AKI. Rev 1.0

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

1 - Button Kontrolu Nasıl Yapılır?

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

MOBIL UYGULAMA GELIŞTIRME

11- FONKSİYONLAR (FUNCTIONS)

Örnek 1: Programı yazın ve çalıştırın.

Progress Barlı, FTP Dosya Upload Appleti

Yığıtın en üstündeki öğeyi değer olarak alır; ama onu yığıttan almaz, yerinde bırakır.

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

JavaTürk. Java Kod İsimlendirme ve Şekil Standardı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

Transkript:

Hazırlayan: Barış Dere @BarisDere baris.dere@gmail.com Spring Framework Eğitimi Ders 2: Http://www.youtube.com/barisdere

Ders içeriği Spring IoC container tanıtımı Spring IoC container çalışma şekli Metadata konfigürasyon seçenekleri XML konfigürasyonu tanıtımı

Spring IoC container tanıtımı BEAN Spring tarafından yönetilen tüm nesnelere verilen isim org.springframework.context.applicationcontext Farklı uygulama sınıfları ClassPathXmlApplicationContext FileSystemXmlApplicationContext Metadata konfigürasyonu

Spring IoC container çalışma şekli public interface TableReader { void read(); public static void main(string[] args) { class BufferedTableReader implements TableReader { public void read() { TableReader reader = new BufferedTableReader(); MyApplication application = new MyApplication(reader); application.dosomethingwithtablereader(); class MyApplication { private TableReader tablereader; public MyApplication(TableReader tablereader) { this.tablereader = tablereader; public void dosomethingwithtablereader() {

Spring IoC container çalışma şekli (3) Meta Data bilgisi Uygulamamız - 'bufferreader' adında BufferedTableReader sinifindan bir nesnem var - 'myapp' adında MyApplication sınıfından bir nesnem var - 'myapp' nesnemi hazırlarken constructor içine 'bufferreader' kullan Meta Data Bilgisi Spring IoC container id=bufferreader BufferedTableReader id=myapp MyApplication TableReader

Metadata konfigürasyon seçenekleri XML Sınıf dosyaları değişmiyor Java Sınıf dosyaları değişmiyor Ek konfigürasyon sınıf(ları) Anotasyon Sınıf dosyaları değişiyor

XML konfigürasyonu tanıtımı my-spring-config.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="..." class="..."> <bean id="..." class="..."> </beans> Bir çok bean eklenebilir Bean id aynı xml dosyasında bir den fazla kere kullanılamaz Tüm bean ler default olarak Singleton olarak oluşturulur

XML konfigürasyonu tanıtımı (2) <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="mycustomer" class="com.spring.training.customer"> </beans> package com.spring.training; public class Customer {

XML konfigürasyonu tanıtımı (3) <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> spring-config.xml <bean id="mycustomer" class="com.spring.training.customer"> </beans> public static void main(string[] args) { // create and configure beans ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml"); // retrieve configured instance Customer customer = context.getbean("mycustomer", Customer.class);

Spring IoC nesne oluşturma teknikleri Constructor kullanarak Static Factory metodu Instance Factory metodu

Spring IoC nesne oluşturma teknikleri Constructor kullanarak nesne oluşturma <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="mycustomer" class="com.spring.training.customer"> </beans> package com.spring.training; public class Customer { => Customer mycustomer = new Customer();

Spring IoC nesne oluşturma teknikleri (2) Static Factory metodu <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="clientservice" class="examples.clientservice" factory-method="createinstance"/> </beans> public class ClientService { private static ClientService clientservice = new ClientService(); private ClientService() { public static ClientService createinstance() { return clientservice; => ClientService clientservice = ClientService.createInstance();

Spring IoC nesne oluşturma teknikleri (3) Instance Factory metodu <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="servicelocator" class="examples.defaultservicelocator"> <bean id="clientservice" factory-bean="servicelocator" factory-method="createclientserviceinstance"/> </beans> public class DefaultServiceLocator { private static ClientService clientservice = new ClientServiceImpl(); private DefaultServiceLocator() { public ClientService createclientserviceinstance() { return clientservice; => ClientService clientservice = DefaultServiceLocator.getInstance().createClientServiceInstance();

Spring IoC Dependency Injection teknikleri Constructor kullanarak Setter metodu yardımıyla

Spring IoC dependency Injection teknikleri Constructor kullanarak <beans> <bean id="foo" class="x.y.foo"> <constructor-arg ref="bar"/> <constructor-arg ref="baz"/> </beans> <bean id="bar" class="x.y.bar"/> <bean id="baz" class="x.y.baz"/> package x.y; public class Foo { public Foo(Bar bar, Baz baz) { //...

Spring IoC dependency Injection teknikleri (2) Constructor kullanarak <bean id="examplebean" class="examples.examplebean"> <constructor-arg type="int" value="7500000"/> <constructor-arg type="java.lang.string" value="42"/> <bean id="examplebean" class="examples.examplebean"> <constructor-arg index="0" value="7500000"/> <constructor-arg index="1" value="42"/> public class ExampleBean { private int years; private String ultimateanswer; public ExampleBean(int years, String ultimateanswer) { this.years = years; this.ultimateanswer = ultimateanswer;

Spring IoC dependency Injection teknikleri (3) Constructor kullanarak <bean id="examplebean" class="examples.examplebean"> <constructor-arg name="years" value="7500000"/> <constructor-arg name="ultimateanswer" value="42"/> package examples; public class ExampleBean { @ConstructorProperties({"years", "ultimateanswer") public ExampleBean(int years, String ultimateanswer) { this.years = years; this.ultimateanswer = ultimateanswer;

Spring IoC dependency Injection teknikleri (4) Setter metodu kullanarak <bean id="mycustomer" class="com.spring.training.customer"> <property name="name" value="baris"/> <property name="years" value="45"/> public class Customer { private String name; private int years; public void setname(string name) { this.name = name; public void setyears(int years) { this.years = years;

Spring IoC dependency Injection teknikleri (5) Setter metodu kullanarak <bean id="mycustomer" class="com.spring.training.customer"> <property name="name" value="baris"/> <property name="years" value="45"/> <property name="address" ref="myaddress"/> <bean id="myaddress" class="com.spring.training.address"/> public class Customer { private String name; private int years; public void setname(string name) { this.name = name; public void setyears(int years) { this.years = years; public void setaddress(address address) { this.address = address; public class Address {

Dependency Injection yönetimi <bean id="company" class="com.spring.training.company"> <constructor-arg name="customer" ref="mycustomer"/> <constructor-arg name="since" value="1945"/> <bean id="mycustomer" class="com.spring.training.customer"> <property name="name" value="baris"/> <property name="years" value="45"/> <property name="address" ref="myaddress"/> <bean id="myaddress" class="com.spring.training.address"/> Customer Address Company constructor 2 arguments Company constructor 2 arguments Customer Address public class Customer { private String name; private int years; public void setname(string name) public void setyears(int years) public void setaddress(address address) //default constructor 'Customer' public class Address { // default constructor 'Address' public class Company { private Customer customer; private int since; public Company(Customer customer, int since) { //print 'Company constructor 2 arguments' this.customer = customer; this.since = since;

Dependency Injection yönetimi (2) <bean id="company" class="com.spring.training.company"> <constructor-arg name="customer" ref="mycustomer"/> <constructor-arg name="since" value="1945"/> <bean id="mycustomer" class="com.spring.training.customer"> <property name="name" value="baris"/> <property name="years" value="45"/> <property name="address" ref="myaddress"/> <bean id="myaddress" class="com.spring.training.address"/> DOĞRU Customer Address Company constructor 2 arguments YANLIŞ Company constructor 2 arguments Customer Address public class Customer { private String name; private int years; public void setname(string name) public void setyears(int years) public void setaddress(address address) //default constructor 'Customer' public class Address { // default constructor 'Address' public class Company { private Customer customer; private int since; public Company(Customer customer, int since) { //print 'Company constructor 2 arguments' this.customer = customer; this.since = since; public Company() { //print 'Company default constructor'

Değişkenleri data tiplerine bağlama Temel data tipleri için otomatik değer çevirme mevcut <bean id="example" class="com.spring.training.examplebean"> <property name="intvalue" value="123"/> <property name="longvalue" value="123"/> <property name="stringvalue" value="123"/> <property name="floatvalue" value="123"/> <property name="boolvalue" value="false"/> <property name="doublevalue" value="123"/> public class ExampleBean { private int intvalue; private long longvalue; private String stringvalue; private float floatvalue; private boolean boolvalue; private double doublevalue; //setter methods

p-namespace kullanımı Temel data tipleri için otomatik değer çevirme mevcut <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="example2" class="com.spring.training.examplebean" p:intvalue="123" p:longvalue="123" p:stringvalue="123" p:floatvalue="123" p:boolvalue="false" p:doublevalue="123"/> public class ExampleBean { private int intvalue; private long longvalue; private String stringvalue; private float floatvalue; private boolean boolvalue; private double doublevalue; //setter methods

p-namespace kullanımı (2) <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="example2" class="com.spring.training.examplebean" p:address-ref="myaddress"/> <bean id="myaddress" class="com.spring.training.address"/>

c-namespace kullanımı Temel data tipleri için otomatik değer çevirme mevcut <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:c="http://www.springframework.org/schema/c" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="foo" class="x.y.foo"> <constructor-arg ref="bar"/> <constructor-arg ref="baz"/> <constructor-arg value="foo@bar.com"/> <bean id="bar" class="x.y.bar"/> <bean id="baz" class="x.y.baz"/> <bean id="foo" class="x.y.foo" c:bar-ref="bar" c:baz-ref="baz" c:email="foo@bar.com"/> <bean id="foo" class="x.y.foo" c:_0-ref="bar" c:_1-ref="baz"/>

Properties data tipi <bean id="mappings" class="org.springframework.beans.factory.config.propertyplaceholderconfigurer"> <!-- typed as a java.util.properties <property name="properties"> <value> jdbc.driver.classname=com.mysql.jdbc.driver jdbc.url=jdbc:mysql://localhost:3306/mydb </value> </property>

Java Collections kullanımı <list> <set> <map> <props> içerisinde List, Set, Map ve Properties data tiplerini kullanabilirsiniz. <bean id="morecomplexobject" class="example.complexobject"> <!-- results in a setsomelist(java.util.list) call <property name="somelist"> <list> <value>a list element followed by a reference</value> <ref bean="mydatasource" /> </list> </property> <!-- results in a setsomemap(java.util.map) call <property name="somemap"> <map> <entry key="an entry" value="just some string"/> <entry key ="a ref" value-ref="mydatasource"/> </map> </property> <!-- results in a setsomeset(java.util.set) call <property name="someset"> <set> <value>just some string</value> <ref bean="mydatasource" /> </set> </property>

Java Collections kullanımı (2) <beans> <bean id="foo" class="x.y.foo"> <property name="accounts"> <map> <entry key="one" value="9.99"/> <entry key="two" value="2.75"/> <entry key="six" value="3.99"/> </map> </property> </beans> class Foo { private Map<String, Float> accounts; public void setaccounts(map<string, Float> accounts) { this.accounts = accounts;

Null ve Empty kullanımı <bean class="examplebean"> <property name="email" value=""/> <bean class="examplebean"> <property name="email"><null/></property>

Lazy kullanımı Gerçekten kullanılına kadar nesne oluşturulmaz <bean id="lazy" class="com.foo.expensivetocreatebean" lazy-init="true"/> <bean name="not.lazy" class="com.foo.anotherbean"/>

Ders notları Presentasyon dosyalarını download etmek için: Tüm videolar için: http://www.youtube.com/barisdere Takip etmek için: @BarisDere Bana ulaşmak için: baris.dere@gmail.com