2 Haziran 2019 Pazar

Java 8 Lambda Kullanimi

Parametreli methodlarda lambda kullanimi
(argument-list) -> {body}

Asagidaki ornekte ilk once klasik yontemle instance olusturarak, daha sonra ise lambda ile gosterim yapilmistir.


Metod parametre almadigi zaman ise asagidaki sekilde lambda kulanilir.



JS Callback and JS Promise


JS Callback


function adimiYaz(ad){console.log("Gamze");}

function soyadimiYaz(ad){console.log("Sen");}

function adimiYaz(ad){console.log(ad);}

function soyadimiYaz(soyad){console.log(soyad);}

adimiYaz("gamze");

gamze

adimiYaz("gamze"); soyadimiYaz("sen");

gamze
sen

function adimiYaz(ad){ setTimeout(function(){ console.log(ad);}, 2000);}

function soyadimiYaz(soyad){setTimeout(function(){console.log(soyad);}, 1000);}

adimiYaz("gamze"); soyadimiYaz("sen");

 sen
gamze

function adimiYaz(ad){ setTimeout(function(){ console.log(ad);}, 4000);}

function soyadimiYaz(soyad){setTimeout(function(){console.log(soyad);}, 1000);}

adimiYaz("gamze"); soyadimiYaz("sen");

 sen
gamze

function adimiYaz(ad, callback){ setTimeout(function(){ console.log(ad); callback("sen"); }, 4000);}

function soyadimiYaz(soyad){setTimeout(function(){console.log(soyad);}, 1000);}

adimiYaz("Gamze", soyadimiYaz);

 Gamze
sen

 JS Promise

 let sonuc = false;

let islem = new Promise(function(resolve, reject){
                if(sonuc){
               resolve("Basarili");
  }else{
               reject("Hatali");
  }
});

islem.then(function(data){
                console.log(data);
}).catch(function(data){
                console.log(data);
});

Hatali

 let req1 = new Promise(function(resolve, reject){
                setTimeout(function(){
               resolve("First");
  }  ,2000);

});

let req2 = new Promise(function(resolve, reject){
                setTimeout(function(){
               reject("Second");
  } , 3000);

});

Promise.all([req1, req2]).then(function(results){
                console.log("Then: ", results);
}).catch(function(err){
                console.log("Catch: ", err);
});

 Catch:  Second

 let req3 = new Promise(function(resolve, reject){
                setTimeout(function(){
               resolve("First");
  }  ,2000);

});

let req4 = new Promise(function(resolve, reject){
                setTimeout(function(){
               reject("Second");
  } , 3000);

});

Promise.race([req3, req4]).then(function(results){
                console.log("Then: ", results);
}).catch(function(err){
                console.log("Catch: ", err);
});



Then:  First



Ornekler cesitli sitelerden alinmistir. 

10 Mayıs 2019 Cuma

GIT KULLANIMI

Git

git kurulduktan sonra konsola



git --version yazalim. sonuc verirse git kurulmustur.



Daha sonra kendimizi asagidaki komutlarla tanitalim.



             

git config --global user.name "Adı ve Soyadı"

git config --global user.email "emaildresi"



oncelikle kodlarimizi gondermek icin bir klasor olusturalim.



mkdir kodlar



Daha sonra bu klasore girelim.



cd kodlar



Simdi de bu klasoru git klasoru haline getirelim. Bu sekilde buraya gizli olarak .git dosyayi eklendi. Bu dosya icinde ayarlar icerir.



git init





git fetch origin



Remote daki kodlari locale indirir ama localdeki kodlarla entegre etmez.



git pull origin master



Remotedaki degisiklikleri indirir ve localle entegre eder.

HIBERNATE



1. one to one 

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Adress {
        @Id
        @GeneratedValue(strategy= GenerationType.AUTO)
        private Long adressId;  

        @Column(name="Mahalle")
        private String mahalle;      
   
        @Column(name="Cadde")
        private String cadde;       

        // getters and setters

}




import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;

@Entity
public class Kisi {

        @Id
        @GeneratedValue(strategy= GenerationType.AUTO)
        private Long id;
       
        @Column(name="Ad")
        private String ad;
       
        @OneToOne
        private Adress address;       

        // getters and setters

}


2. one to many = bir kisinin birden fazla birden fazla banka hesabi olabilir.


import javax.persistence.*;

@Entity
public class Hesap {

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name="HesapId")
        private Long id;   

        @Column(name="HesapAdi")
        private String hesapAdi;       

        @Column(name="Bakiye")
        private Double hesapBakiyesi;

        //getters and setters

}


import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;

@Entity
public class Kisi {

        @Id
        @GeneratedValue(strategy= GenerationType.AUTO)
        @Column(name="KisiId")
        private Long id;
   
        @Column(name="Ad")
        private String ad;
      
        @OneToMany(cascade = CascadeType.ALL)
        @JoinTable(name="KisiAdres", joinColumns = {@JoinColumn(name="KisiId") }, inverseJoinColumns = { @JoinColumn(name="HesapId")})
        private List hesapListesi;
  

        // getters and setters

}



24 Nisan 2019 Çarşamba

DispatcherServlet Nedir?


Spring uygulamalarinin merkezi Dispatcher Servlettir. Tum istekler buradan yonetilir. Servlet yapisindadir.
Gelen Http istekleri alir onlari ilgili kontroller a yonlendirir. Gerekli islemler yapildiktan sonra kontroller bize bir view dondurur ve ilgili view i response olarak dondurur.

Oncelikle bize bir web.xml gerekli. Burada bize gelen url uzantilarinin DispatcherServlet te handle edilmesi icin url-pattern tagi icinde handle edilmesi gerekir. Ornegin tum isteklerin handle edilmesi icin

<url-pattern>/</url-pattern>

yazmamiz yeterlidir.
html icin ise <url-pattern>*.html</url-pattern> seklinde yazilmalidir.

context:component-scan tagi icinde ise kodlarin scan edilecegi package i vermemiz gerekir.

<context:component-scan base-package="com.pluralsight" />

Diger bir kontrol ise

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/WEB-INF/jsp/"></property>
                <property name="suffix" value=".jsp"></property>
</bean>

Burada da view dosyalarinin hangi folder altinda olacagi prefix icinde, uzantilari ise suffix icinde belirtilir.Buna viewResolver denir.

Kontroller kismi ise su sekilde calisir.

@Controller
public class AddGoalController {
       
        @RequestMapping(value="/addGoal", method=RequestMethod.GET)
        public String addGoal(Model model){
                    return "addGoal";
}

Yani url olarak http://localhost:8093/FitnessTracker/addGoal.html seklinde bir istek atildiginda bu metod tarafindan yakalanir ve return olarak view in adi verilmis. dosya uzantilarinin jsp olacagini
DispatcherServlet yapisinda belirtmistik. Yani kontroller addGoal.jsp adindaki view i bize response olarak dondurecektir.


Yani DispatcherServlet gelen istegi alir ve handlermapping ile ilgili controlleri bulur. orada gerekli islemler yapildiktan sonra view isaretcisi doner. Daha sonra view resolver ile ilgili view
bulunup response olarak dondurulur.

14 Nisan 2019 Pazar

Palindrome - Java Kodu

10 Nisan 2019 Çarşamba

Spring configuration

Spring projelerinde konfigurasyon dosyalari ornegi asagidaki resimlerde yer almaktadir.

web.xml


servlet_config.xml