JAX-RS (ACCESSING CONTEXT INFORMATION)

      Bu yazımızda @context ek açıklamasının bizlere sunduğu içerik bilgilerini inceleyeceğiz.

Injecting Application

   İlk olarak application'dan başlıyoruz.Burada ApplicationConfig classımızda extends ettiğimiz Application classındaki getProperties methodunu override ederek kaynak sınıfımıza enjekte edeceğiz.Bu sayede kaynak sınıflarımızı ApplicationConfig class'ımızdan kontrol edebiliriz.Şimdi bunu basitçe nasıl yapabileceğimize bakalım.


import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/")
public class ApplicationConfig extends Application {
@Override
public Map<String,Object> getProperties(){
Map<String,Object> map=new HashMap<>();
map.put("KEY_MAX_ORDER_LIMIT", "100");
return map;
}
}
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
public class OrderClient {
public static void main(String[] args) throws Exception {
Client client = ClientBuilder.newBuilder().build();
WebTarget target =
client.target("http://localhost:8080/orders");
Response response = target.request().get(Response.class);
String responseString = response.readEntity(String.class);
System.out.println("response: " + responseString);
}
}
view raw Client hosted with ❤ by GitHub
import java.util.Map;
import java.util.stream.Collectors;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
@Path("/orders")
public class OrderResource {
@GET
public String getAllOrders(@Context Application app) {
Map<String, Object> properties = app.getProperties();
String props = properties.entrySet().stream()
.map(e -> e.getKey() + "=" + e.getValue())
.collect(Collectors.joining("\n"));
System.out.println(props);
return properties.get("KEY_MAX_ORDER_LIMIT").toString();
}
}
view raw Resource hosted with ❤ by GitHub
Gördüğünüz gibi,böylece ApplicationConfig sınıfımızda yaptığımız bir değişiklik kaynak sınıfımızı da etkileyecek.Şimdi de browser ve server çıktılarına bakalım.


Injecting UriInfo

        Aynı şekilde UriInfo arayüzümüzdeki fonksiyonların kullanımına ve bunların yine aynı şekilde server'ımızda tutulan log'una bakalım.




Injecting HttpHeaders



Umarım faydalı olmuştur.Bir sonraki yazımızda görüşmek üzere.

1 yorum:

  1. Harrah's Cherokee Casino & Hotel Map - YooGo
    Harrah's 익산 출장안마 Cherokee Casino 남원 출장마사지 & Hotel is 제주도 출장마사지 a popular casino/hotel located in Murphy 강릉 출장안마 and 태백 출장안마 includes an outdoor pool and a restaurant.

    YanıtlaSil

Spring Boot Uygulamasını Heroku üzerinde Deploy Etme

Bu yazımızda sizlere spring boot ile yazılmış basit bir Rest api'nin heroku üzerinde nasıl deploy edebileceğimizi göstereceğim. Önce ...