Можем ли мы настроить Spring для настройки свойства в зависимости от объема запроса? - PullRequest
0 голосов
/ 09 мая 2011

Можно ли настроить Spring таким образом, чтобы я добавил в запрос свойство isHttps, и к этому свойству можно получить доступ из любого места кода, например класс бобов:

    public class MyItem{
       public String getImageUrl(){
          if (isHttps){
            //return https url 
          }
      //return http url;
       }
    }

Я могу сделать это с помощью ThreadLocal, но я бы не хотел идти по этому пути.

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Другая альтернатива:

Вы можете получить текущий запрос следующим образом:

    ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    HttpServletRequest req = sra.getRequest();     

Используется локальный поток под крышками.

Если вы используете Spring MVC, это все, что вам нужно. Если вы не используете Spring MVC, вам необходимо зарегистрировать RequestContextListener или RequestContextFilter в вашем web.xml.

1 голос
/ 09 мая 2011

Создайте bean-объект в области запросов

<bean id="requestBean" class="com.foo.RequestBean" scope="request"/>

Затем в этом классе выполните автоматическую передачу запроса (ссылка здесь ):

@Autowired
private HttpServletRequest request;

Добавьте метод вRequestBean, который определяет, является ли запрос HTTPS.

public boolean isHttp() { // ... }

Затем внедрите requestBean в другие ваши bean-компоненты, которым необходимо вызвать isHttp ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...