Spring Dersleri – Spring ile Hello World Uygulaması

Spring Dersleri – Spring ile Hello World Uygulaması

Merhaba Arkadaşlar,
Mobilhanem.com üzerinden hazırladığımız Spring Dersleri‘ne iş süreçleri nedeniyle bir süre ara vermek zorunda kalmıştık. Kaldığımız yerden devam edeceğiz ve son dersimizde söylediğimiz gibi elimizi kirletmeye başlayacağız. Bu dersimizde Spring ile  Hello World uygulaması yazacağız.

Spring ile Hello World Uygulaması

Ortam Kurulumu

Spring projelerinin JVM tabanlı olduğundan önceki derslerimizde bahsetmiştik. Bu noktada öncelikli ihtiyacımız bilgisayarımızda JDK’nın kurulu olması. Detaylı bilgi ve kurulum için JDK Kurulumu dersimizi inceleyebilirsiniz.

Sonraki ihtiyacımız kodlama yapacağımız, kodumuzu derleyeceğimiz bir IDE (Integrated Development Envorinment). Bu noktada tercihimizi hem ücretsiz olması hem de Spring tarafından sağlanması nedeniyle Eclipse tabanlı Spring Tool Suite ten yana kullanıyoruz. Bu linkten işletim sisteminize uygun STS versiyonunu indirebilirsiniz.

Kurulumu başlattığımız zaman STS ilk önce calışma alanı olarak kullanmak istediğimiz dizini belirlememizi istiyor. Bizim bireysel tercihimiz ve sizlerede önerimiz Spring Projects gibi bir isimle yeni bir klasör oluşturup calışmalarımızı bu dizinde yürütmek. İlgili projelerin bir dizin altında toplanması şeklindeki bu yaklaşımı dersimiz dışında yapacağınız veya çalışacağınız projeleriniz için de öneriyoruz. Böylece üzerinden 1 yıl geçtikten sonra bile herhangi bir projeyi bulmanız ve projeyle ilgili yaptığınız geliştirmeleri bir arada görmeniz daha kolay olacaktır. Düzen önemli 🙂 Son olarak STS her açışımızda çalışma alanı olarak kullanılacak dizini sormasın diye “use this as the default …” kutucuğunu işaretliyoruz.

directory-ss

Başarılı bir kurulumun ardından STS acılış sayfasını (Dashboard) görmemiz lazım. Dashboardda benim gördüğüm gibi eciş bücüş karakterler görecek olursanız endişe etmeyin. STS’te kullandıkları yazı tipiyle ilgili bir hata ve STS geliştiricileri düzeltmek için üzerinde çalışıyorlar.

dashboars-ss

Gerekli Kütüphaneler

STS çalışır durumda ancak New Project demeden önce gerçekleştirmemiz gereken iki adım daha var. Spring imkanlarından yararlanabilmek icin Spring Framework kütüphanesini ve Spring projelerinin internal logging işlemleri icin kullandığı Apache Commons Logging kütüphanesini bilgisayarımıza indirmemiz gerekiyor.

Spring Repo linkinden en güncel release versiyonunu seçip indiriyoruz. Ders hazırlanırken 4.3.6.RELEASE en güncel versiyondu ve spring-framework-4.3.6.RELEASE-dist.zip indirerek devam ettik. Spring Projects adıyla oluşturduğumuz klasörün içinde Libraries isminde bir klasör oluşturduk. Unzip işlemini yaptıktan sonra spring-framework-4.3.6.RELEASE klasörünü yeni oluşturduğumuz Libraries klasörüne taşıdık. Bu işlemde isteğe bağlı bir işlem ancak daha öncede söylediğimiz gibi ilgili projeler, kodlar, kütüphaneler bir arada dursun ortalık karışmasın istiyoruz. spring-framework-4.3.6.RELEASE -> libs dizini altında Spring Framework kütüphanesine dahil tüm jar dosyalarını görebiliriz.

Apache Commons Logging kütüphanesi için de aynı işlemleri yapacağız. Bu linkten binary dosyalarını indiriyoruz. Ders hazırlanırken commons-logging-1.2-bin.zip güncel versiyondu. Unzip işlemi sonrasında commons-logging-1.2 klasörünü yine Libraries klasörümüze taşıyoruz. Son durumda klasör yapımız şu şekilde olmalı:

directory-ss

Proje Oluşturalım

Şimdi menüden File -> New -> Project seçimlerini yaparak Java Project seçiyoruz. Proje ismini HelloSpring olarak seçtik, farklı bir isim verebilirsiniz. JRE olarakta Java 1.8 seçtik.

new-project-ss

Sonraki adıma gectiğimizde Java Settings menüsü açılacak. Bu adımda daha önce indirdiğimiz Spring Framework kütüphanesini ve Apache Commons Logging kütüphanesini uygulamamıza ekleyeceğiz. Libraries sekmesine tıklayoruz, sağ menüden Add External JARs butonuna tıklayoruz ve açılan menüden Spring Framework kütüphanesini unzip ettigimiz klasöre gidiyoruz. Bizim icin Spring Project -> Libraries -> spring-framework-4.3.6.RELEASE -> libs. Burdan …-javadoc.jar ve …-source.jar uzantılı jar dosyalarının haricindeki tüm jar dosyalarını ekliyoruz. Aynı işlemi logging kütüphanesi için de yapıyoruz ve commons-logging-1.2.jar dosyasını ekliyoruz. Son durumda Java Settings menüsünü jar dosyalarımız ekli halde görmemiz lazım.

settings-ss

Finish butonuna bastıktan sonra eklediğimiz kütüphaneleri içeren projemiz oluşmuş durumda.

library-ss

Uygulama Sınıflarımız

Artık sınıflarımızı oluşturup, kodlamaya başlayabiliriz. Öncelikle gerekli görüldüğü noktada encapsulation uygulayabilmek ve yine ilgili kodların bir arada bulunmasını sağlamak amacıyla src -> new -> package üzerinden package oluşturuyoruz. Biz package adına com.mobilhanem adını verdik. Package içerisine iki java sınıfı oluşturacağız. İlki uygulamamızı calıştıracağımız Main.java, ikincisi HelloSpring.java. Java sınıflarımıza ait kodları asağıdan kopyalayıp yapıştırabilirsiniz.

package com.mobilhanem;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

class Main {

private static ApplicationContext context;

public static void main(String[] args) {

context = new ClassPathXmlApplicationContext(“ApplicationContext.xml”);

HelloSpring helloSpringObject = (HelloSpring) context.getBean(“helloSpring”);

helloSpringObject.getMessage();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

package com.mobilhanem;

 

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

class Main {

 

private static ApplicationContext context;

 

public static void main(String[] args) {

context = new ClassPathXmlApplicationContext(“ApplicationContext.xml”);

 

HelloSpring helloSpringObject = (HelloSpring) context.getBean(“helloSpring”);

 

helloSpringObject.getMessage();

 

}

 

}

package com.mobilhanem;

class HelloSpring {

private String message;

public void setMessage(String message) {
this.message = message;
}

public void getMessage() {
System.out.println(“Your Message : ” + message);
}

}

package com.mobilhanem;

 

class HelloSpring {

private String message;

 

public void setMessage(String message) {

this.message = message;

}

 

public void getMessage() {

System.out.println(“Your Message : “ + message);

}

}

Spring Konfigürasyonu

Main sınıfında görülen ve bilinmesi gereken iki nokta var.

  • Application Context: Spring ile gelen, uygulamaya konfigürasyon bilgilerinin sağlandığı interface. Yani önceki derslerde anlatılan, Springin yardımcı olacağı konularda konfigürasyon bilgisi Application Context üzerinden alınır.
  • Beans: Spring tarafından oluşturulan, yönetilen nesnelere Bean diyoruz. Beanler Application Context e eklenir, çalışma anında bu beanlere uygulama tarafından erişilmesi sağlanır.

Main sınıfımızdaki context isimli nesnemiz Springin konfigürasyon bilgilerine erişeceği ApplicationContext nesnesi. Bu nesneye

new ClassPathXmlApplicationContext(“ApplicationContext.xml”)

new ClassPathXmlApplicationContext(“ApplicationContext.xml”)

kod satırıyla yaptığımız atamayla ApplicationContext.xml dosyasından konfigürasyon bilgilerini oku, bu bilgilerle bir ApplicationContext nesnesi yarat dedik. Bir sonraki kod satırında da,

HelloSpring helloSpringObject = (HelloSpring) context.getBean(“helloSpring”);

HelloSpring helloSpringObject = (HelloSpring) context.getBean(“helloSpring”);

context isimli ApplicationContext nesnemden helloSpring id’li beani al ve bu değeri helloSpringObject isimli HelloSpring nesneme ata dedik. İyi, güzel ama ApplicationContext.xml nerde helloSpring id’li bean tanımlaması nerde diyorsunuz. Güzel yakaladınız, hemen konfigürasyon dosyamızı oluşturalım 🙂

Projemizde src’yi seçip new -> Other diyoruz, çıkan ekranda arama kısmına xml yazıp XML File seçeneğini seçiyoruz. Dosya ismini ApplicationContext.xml vererek dosyamızı oluşturuyoruz. Dosya içeriğini aşağıdan kopyalayıp yapıştırabilirsiniz.


xml version=“1.0” encoding=“UTF-8”?>

<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=“helloSpring” class=“com.mobilhanem.HelloSpring”>

       <property name=“message” value=“Hello Spring!”/>

   </bean>

 

</beans>

Xml dosyamızda şuan için bilmemiz gereken tagleri içine yazdıklarımız. Bu xml konfigürasyonumuzda, com.mobilhanem.HelloSpring sınıfından türetilen, helloSpring id’li bir bean’im var ve bu bean’in message isimli değişkeninin değeri “Hello Spring!” dir demiş olduk. Spring bu xml de verilen konfigürasyon bilgilerini okuyacak, application context’e okuduğu bilgileri yazacak ve çalışma anında uygulama bu bilgilere erişebilecektir. Son durumda proje yapımız aşagidaki gibi olmalıdır.

project-screen-ss

Hello World!

Artık uygulamamıza Run demek icin hazırız. Main.java sınıfına sağ tıklayıp Run As -> Java Applications dediğimizde kodumuz derlenecek ve java uygulaması olarak çalışacak. Kod akışını düşünecek olursak,

  • ApplicationContext.xml den konfigürasyon bilgileri okunacak, context isimli nesnemize aktarılacak
  • Context isimli nesnemizden helloSpring id’li bean okunacak
  • HelloSpring nesnesine ait getMessage() fonksiyonu ile console üzerine message değişkeni basılacak.

Problemsiz ilerlediğimiz takdirde Console üzerinde “Your Message : Hello Spring!” çıktısını görmemiz lazım. Spring ile ilk projemiz hayırlı olsun 🙂

run-result-ss

Bu dersimizde Spring projelerinden yararlanmak adına bir adım attık ve Spring ile Hello World uygulması yazdık. Projemize Spring framework kütüphanelerini ekleyerek HelloSpring nesnesi üzerinden DI ve IOC konseptlerini uyguladık. Önerimiz uygulamayı çalıştırdıktan sonra önceki derslerin üzerinden geçmeniz böylece ne yaptık, Spring ne sağladı daha iyi anlaşılacaktır. Sonraki dersimizde Xml dosyası kullanmadan Spring konfigürasyonu yapabilir miyiz sorusuna cevap arayacağız.

Takıldığınız nokta veya noktalar olursa soru-cevaptan sormayı unutmayın 🙂

Tüm Spring Dersleri için tıklayınız…

0

Yorum Yap
0 Yorum yapan