2009-02-26 14 views

Odpowiedz

2

Nie sądzę, że to dobry pomysł. Warstwa usług nie powinna wiedzieć ani nie obchodzi, czy ma do czynienia z klientem HTTP.

Statyczny nie brzmi też jak dobry pomysł. HttpRequestContext powinien być powiązany z instancją HttpRequest, a nie określoną klasą.

Lepszy projekt, moim zdaniem, pobierałby wszelkie potrzebne usługi z kontekstu i przekazywał je. Nie ma potrzeby, aby usługa była połączona z HTTP lub warstwą internetową.

+0

doskonałą odpowiedź –

+10

Zamiast narzekać na zły styl programowania, można po prostu odpowiedzieć na pytanie? To znaczy, możesz odpowiedzieć na to pytanie, a potem narzekać na zły styl, ale w ogóle nie odpowiadasz. -1 –

+3

To jest strona edukacyjna. Myślę, że mówienie, kiedy jesteś na złej drodze, jest warte poznania. Możesz się z tym nie zgodzić. Zaznaczę, że osoba, która zadała pytanie, uznała to za odpowiedź. Nie napisałeś nic wartościowego, z wyjątkiem marnego komentarza. Kto był bardziej pomocny tutaj? – duffymo

26

Jeśli używasz wiosny można wykonać następujące czynności:

public static HttpServletRequest getCurrentHttpRequest(){ 
    RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 
    if (requestAttributes instanceof ServletRequestAttributes) { 
     HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest(); 
     return request; 
    } 
    logger.debug("Not called in the context of an HTTP request"); 
    return null; 
} 
+0

powiąż to jako fasolę? Jak tu działa "autowired" zamiast metody statycznej? – sbs

+0

@sbs Zobacz tutaj https://stackoverflow.com/a/36736964/5788341 – Binakot

Powiązane problemy