2009-02-26 19 views

Trả lời

2

Tôi không nghĩ đây là một ý hay. Lớp dịch vụ không nên biết hoặc quan tâm đến việc nó có đang xử lý một máy khách HTTP hay không.

Tĩnh cũng không giống như ý tưởng phù hợp. HttpRequestContext nên được liên kết với một cá thể HttpRequest, không phải là một lớp cụ thể.

Thiết kế tốt hơn, theo ý kiến ​​của tôi, sẽ tìm nạp bất kỳ dịch vụ nào cần ngoài ngữ cảnh và chuyển nó vào. Không cần dịch vụ được ghép nối với HTTP hoặc lớp web.

+0

xuất sắc trả lời –

+10

Thay vì phàn nàn về phong cách lập trình xấu, có thể bạn chỉ cần trả lời các câu hỏi? Ý tôi là, bạn có thể trả lời câu hỏi và sau đó phàn nàn về phong cách xấu, nhưng bạn không trả lời. -1 –

+3

Đây là một trang web giáo dục. Tôi nghĩ rằng đang được nói khi bạn đang trên con đường sai lầm là đáng biết. Bạn được tự do không đồng ý. Tôi sẽ chỉ ra rằng người hỏi câu hỏi đã chấp nhận điều này như là câu trả lời. Bạn đã đăng không có giá trị nào ngoại trừ một nhận xét cáu kỉnh. Ai hữu ích hơn ở đây? – duffymo

26

Nếu bạn đang sử dụng mùa xuân, bạn có thể làm như sau:

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

liên kết này với tư cách là một loại đậu? Làm thế nào bằng cách sử dụng 'autowired' làm ở đây, thay vì một phương pháp tĩnh? – sbs

+0

@sbs Nhìn vào đây https://stackoverflow.com/a/36736964/5788341 – Binakot

Các vấn đề liên quan