Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
Spring Boot

Spring Boot Profile Nedir?

Paylaş

Spring Boot Dersleri‘ne devam ediyoruz.

Bu yazıda Spring Boot’ta Profile anotasyonundan bahsedeceğiz. Profile anotasyonu uygulamamızdaki farklı çalışma isterlerine göre programımızın hangi işlevinin çalışacağını çalışacağını isteğimize göre seçmemizi sağlamaktadır.

Şimdi bir örnek ile Spring Boot ile Profile kullanımına bakacağız. Bu uygulamamızda iki adet çıktı üreticimiz var birisi PDF çıktısı diğeri ise HTML çıktısı ürettiğini varsayalım. Bu iki çıktınında kodlarını yazacağız ardından istediğimiz bir çıktıyı seçip uygulamanın o seçtiğimiz işlevi yapmasını sağlacağız. Örneğimiz maven projesi olup yazının sonunda ki linkten projenin tamamına ulaşabileceksiniz.

Bir Spring Boot Projesi oluşturalım. (bakınız: Spring Boot Projesi Oluşturmak) Proje yapımız , paketleri ve beanler şu şekilde olacak.

Print Servisimiz bir interface oluşturalım. Bu interface merhaba adında olacak ve geri dönüş olarak girilen ismi döndürecek.

package com.burakkutbay.springprofileexample.service;

import org.springframework.stereotype.Component;

@Component
public interface PrintService {
    public String printHello(String name);
}

Yazdığımız interface’i implement ederek sözde Pdf ve Html çıktısı üretecek servisimizi yazalım.

Şimdi Pdf servisimizi yazalım.

package com.burakkutbay.springprofileexample.service;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

@Component
@Profile("pdf")
public class PrintServicePdf implements PrintService{

    @Override
    public String printHello(String name) {
        return "Pdf Printed : " + name ;
    }
}

Pdf servisimizi yazalım.

package com.burakkutbay.springprofileexample.service;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

@Component
@Profile("html")
public class PrintServiceHtml implements PrintService{

    @Override
    public String printHello(String name) {
        return "Html Printed : " +name;
    }
}

Burada asıl dikkat edeceğimiz şey bu Component anotasyonu ile işaretlenmiş olan beanimizi @Profile olarak işaretliyoruz ve bir isim veriyoruz. Bu işaretlemeyi yaptıktan sonra hangi Spring Componenetinin çalışacağını application.properties dosyasında belirtiyoruz.

spring.profiles.active=pdf

spring.profiles.active attribute’na pdf i seçerek Pdf componentinin çalışmasını sağlamaktayız. Html yazarsak o component çalışacaktı. Controller’imizi yazalım.

package com.burakkutbay.springprofileexample.controller;

import com.burakkutbay.springprofileexample.service.PrintService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(path = "/")
public class PrintController {
    @Autowired
    private PrintService printService;

    @RequestMapping(path = "hello/{name}", method = RequestMethod.GET)
    public String hello(@PathVariable(value = "name") String name){
        return printService.printHello(name);
    }
}

Controller’imiz de yaptığımız işlemlerden bahsedecek olursak. http://localhost/hello adresinden bir parametre almayı bekliyoruz. Bu göndereceğimiz parametre sonucunda PrintService’miz çalışacak ve application.properties dosyasında hangi componenti seçtiysek o çalışıp bize değer döndüerecektir.

Programımızı çalıştıracak ana classımızı yazalım.

package com.burakkutbay.springprofileexample;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringProfileExampleApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringProfileExampleApplication.class, args);
	}
}

Şimdi sıra çalıştırmaya geldi. http://localhost/hello/burak yazdığımızda karşımıza çıkan sonuca bakalım.

Pdf Printed : burak

Bu çıktıyı almamazın nedeni profil olarak pdf seçilmesidir. html olarak seçersek sonuç;

Html Printed : burak

Çıktımız şeklinde olmaktadır.


Projenin Kaynak Kodlarını Github Üzerinden Görünlüte / İndir
 

Önceki Ders: CLI ile Spring Boot Uygulaması Spring Boot Dersleri Sonraki Ders: Spring Boot Developer Tools Nedir ve Kullanımı

Tags:

profile kullanımıspring bootspring boot clispring boot derslerispring profile örnek

Paylaş

Diğer Yazılar

blank
Previous

Project Lombok Nedir? Lombok Kullanım Uygulama Örneği

Spring Dersleri
Next

Spring Mvc DispatcherServlet Nedir?

Next
Spring Dersleri
05 Aralık 2017

Spring Mvc DispatcherServlet Nedir?

Previews
28 Kasım 2017

Project Lombok Nedir? Lombok Kullanım Uygulama Örneği

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Spring Boot Dersleri Rest Template

Spring Boot RestTemplate Nedir ve Kullanımı

blank

Spring Boot Transaction, Isolation, Propagation ve RollBack

blank

Spring Boot Projelerinde Jackson Kullanımı

blank

Spring Boot Bean Validation Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Struts
Röportaj
Android
Vue.js
Node.js
Redis
Spring Cloud Stream
Spring Data
Debezium
Mikroservis Mimarisi
XCode
Spring Native
Video
PostgreSQL
Spring Security
JPA
iPhone Uygulama Geliştirme
Objective C
Design Patterns
DevOps
Git
Apache Kafka
Maven
Yaptığım Projeler
Servlet
Spring Cloud
Linux
Spring
PrimeFaces
Spring Jdbc Template
JDBC
RabbitMQ
Manset
Google
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github