Bu Sayfayı Paylaş:

Kavram

Spring

Tanım: 2002'de Rod Johnson tarafından yaratılan , hızlı, esnek, taşınabilir uygulama geliştirmeyi sağlayan, açık kaynak kodlu bir inversion of control container'ı ve framework

Kavram

Spring Tool Suite - STS

Tanım: Spring uygulamaları için özelleştirilmiş Eclipse tabanlı bir editor

Kavram

Spring Boot

Tanım: Hızlı bir şekilde Spring uygulaması geliştirmenizi sağlayan ve bu süreçleri kolaylaştıran bir framework. Spring Boot ile herhangi bir application server'a ihtiyacınız olmadan geliştirme yapabilirsiniz. Spring modüllerini hızlı ve kolay bir şekilde ekleyebilirsiniz.

İpucu

Spring Boot İle Hello World Web Uygulaması

STS (Spring Tool Suite ) kurulması gerekiyor. (Eclipse veya diğer editörlerle de yapılabilir ancak STS ile yapmak daha kolaydır)
STS de New->Spring Starter Project seçilir ve proje adı, maven için gerekli olan bilgiler girilir. Bir sonraki bölümde hangi modülleri kullanacağını seçeceğin bir liste gelecektir. Biz sadece Web seçiyoruz. Proje bu şekilde yaratılması bir Web projesi için yeterlidir
Bu projede pom.xml dosyasında aşağıdakini bağımlılıklar eklenmiş olmalı :
<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
	
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>
Bu şekilde bir web projesi için gerekli olan kütüphanelerin hepsi yüklenecektir. Aynı zamanda test için gerekli olan kütüphanelerde yüklenmiş olur.
Aşağıdaki gibi bir ana sınıfı yaratılmış olacaktır:
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}
Test kodu da aşağıdaki gibi üretilecektir:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DemoApplication.class)
@WebAppConfiguration
public class DemoApplicationTests {

	@Test
	public void contextLoads() {
	}
}
/hello şeklinde çağrıldığında "Hello World!" dönecek şekilde bir servis eklemek için ana uygulama sınıfını aşağıdaki gibi değiştirebiliriz:
@SpringBootApplication
@Controller
public class DemoApplication {
	
	@RequestMapping("/hello")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}
Bu kod aşağıdaki gibi test edilebilir:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DemoApplication.class)
@WebAppConfiguration
public class DemoApplicationTests {

	private MockMvc mockMvc;
	
	@Autowired
	private WebApplicationContext webApplicationContext;
	
	@Before
    public void setup() throws Exception {
		
		this.mockMvc = webAppContextSetup(webApplicationContext).build();	
		
	}
	
	@Test
	public void testHello() throws Exception {
		
		mockMvc.perform(get("/hello")).andExpect(content().string("Hello World!"));
		
	}

}

İpucu

Date Formatın Değiştirilmesi

Spirng Boot'da Rest servislerinde date tipi aktarımında 1452672976347 gibi mili saniye cinsinden aktarılır. Örnek bir cevap :
{"id":1,"name":"test","date":1452672976347}
şeklinde olabilir.
Buradaki tarih alanını formatlamak için application.properties dosyasına aşağıdakini ekleyebilirsiniz:


spring.jackson.date-format=dd.MM.yyyy HH:mm


Bu şekilde cevap aşağıdaki gibi olabilir:


{"id":1,"name":"test","date":"13.01.2016 08:23”}


Eğer timezezone'u set etmek isterseniz (bölgesel ayarı İngilizce olan bir sunucuda çalışıyor olabilir uygulama) application.properties dosyasına aşağıdakine de ekleyebilirsiniz:


spring.jackson.date-format=dd.MM.yyyy HH:mm


Bu eklendikten sonra Türkiye'ye göre uygun şekilde saati düzeltecektir.

Veri

Netflix Zuul Server

Basit spring boot microservice application'larında gateway service olarak kullanılabilen netflix uygulaması.  Cross cutting concernler için filter kullanılır.
application.properties dosyası içerisine tanım yapılarak route'lamak istenen service'leri yazıp, eureka server'a bağlantı kurup, port girersiniz. Gelen istekler ilgili servislere yönlendirilir. 

Veri

Netflix Zuul Filter

Zuul filtresi, kullanıcının video izlemek için ihtiyaç duyduğu özellikleri önceliklerine göre kategorize ediyor. 

Bu kategoriler kritik olmayan, kritik olan ve düşürülmüş deneyim olarak üçe ayrılıyor. Kritik olmayan öğeler, kayıt girdilerini ve arka plan isteklerini içerir. Ancak bu öğeler, sunucu belli bir yük eşiğine ulaştığı zaman göz ardı edilebilir. Kritik olan bölüm ise kullanıcıların içerik oynatma deneyimini etkileyen trafik içindir. Bu trafik aşırı miktarda artarsa, bir filmi veya diziyi oynatmak istediğinizde sunucu hatası ile karşılaşabilirsiniz. Zuul filtresi, tüm bu öğeleri 1 ve 100 arasında puanlıyor. Önceliğe göre öğeler devre dışı bırakılabiliyor veya aktif edilebiliyor. Sunucu altyapısı kendisini bir arızadan kurtarırken, kullanıcılar sevdikleri programları kesintisiz bir şekilde izlemeye devam edebilmesini sağlayan özellik.




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir