Size: a a a

2020 December 26

I

Ingli in pro.jvm
public static boolean equalRoute(List<String> cutString, List<String> cutRoute) {

       int i = 0;
       while (i < cutRoute.size()) {
           if (cutString.get(i).equals("{paramId}")) {
               i++;
           } else {
               if (!cutRoute.get(i).equals(cutString.get(i))) {
                   return false;
               }
           }
           i++;
       }
       return true;
   }


вот тут происходит следующее, если у меня есть параметр, то итерация пропускается, если нет - я проверяю равны ли кусочки url, если нет - возвращаю false, типа в базе нету такого url(если хоть 1 косочек отличается, логично)
но, и делаю это поочереди, и если в базе 2 строки:
abc/def
abc/abc
то прилетевшая строка abc/abc(есть в базе, легко заметить) сравнится с первой и скаже что отличается, вернет false и на этом функция завершится
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Ingli
public static boolean equalRoute(List<String> cutString, List<String> cutRoute) {

       int i = 0;
       while (i < cutRoute.size()) {
           if (cutString.get(i).equals("{paramId}")) {
               i++;
           } else {
               if (!cutRoute.get(i).equals(cutString.get(i))) {
                   return false;
               }
           }
           i++;
       }
       return true;
   }


вот тут происходит следующее, если у меня есть параметр, то итерация пропускается, если нет - я проверяю равны ли кусочки url, если нет - возвращаю false, типа в базе нету такого url(если хоть 1 косочек отличается, логично)
но, и делаю это поочереди, и если в базе 2 строки:
abc/def
abc/abc
то прилетевшая строка abc/abc(есть в базе, легко заметить) сравнится с первой и скаже что отличается, вернет false и на этом функция завершится
функция завершится - ты про вызывающую функцию?
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Ты хочешь, чтобы если equalRoute возвращает false, цикл for (String s : routeCollection) в validateUri шел на следующую итерацию?
источник

I

Ingli in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Ты хочешь, чтобы если equalRoute возвращает false, цикл for (String s : routeCollection) в validateUri шел на следующую итерацию?
ну тогда как я определю что у меня строка есть, если вернется false и я продолжу определять?
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Ingli
ну тогда как я определю что у меня строка есть, если вернется false и я продолжу определять?
в общем, напишите тест, который не проходит, но должен проходить. Пока совершенно непонятно чего именно вы хотите добиться
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Можно несколько тестов на разные варианты
источник

I

Ingli in pro.jvm
база
list.add("/webapi/api/v1/netbanking/my/accounts/");
list.add("/webapi/api/v1/netbanking/your/accounts/");

новый роут
System.out.println(validateUri(list, "/webapi/api/v1/netbanking/your/accounts/"));
источник

D

Dima in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
в общем, напишите тест, который не проходит, но должен проходить. Пока совершенно непонятно чего именно вы хотите добиться
Я тоже сдался понимать, человек не может нормально обьяснить
источник

D

Dima in pro.jvm
Ingli
база
list.add("/webapi/api/v1/netbanking/my/accounts/");
list.add("/webapi/api/v1/netbanking/your/accounts/");

новый роут
System.out.println(validateUri(list, "/webapi/api/v1/netbanking/your/accounts/"));
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Dima
Я тоже сдался понимать, человек не может нормально обьяснить
Он мне в личку написал, там решение действительно было то, которое я изначально предложил.
Ну да, это для @javastart вопрос :)
источник

D

Dima in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Он мне в личку написал, там решение действительно было то, которое я изначально предложил.
Ну да, это для @javastart вопрос :)
В итоге просто покомпонентно сравнить?
источник

DC

Denis Chikanov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Он мне в личку написал, там решение действительно было то, которое я изначально предложил.
Ну да, это для @javastart вопрос :)
Ох уж эти тонкие натуры, которым эго не позволяет в новичковый чат писать...
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Dima
В итоге просто покомпонентно сравнить?
Да там не в этом дело. У него из цикла по false не должно выходить
источник

V

Vova in pro.jvm
Ребята, кто в spring boot шарит, как можно поменять порядок стратегий ContentNegotiationStrategy в ContentNegotiationManager?
источник

А

Алексей in pro.jvm
Vova
Ребята, кто в spring boot шарит, как можно поменять порядок стратегий ContentNegotiationStrategy в ContentNegotiationManager?
источник

V

Vova in pro.jvm
Да, читал, пробовал, но в ContentNegotiationManagerFactoryBean все поля private. Как быть в этом случае?
источник

А

Алексей in pro.jvm
Так тебе надо свой сделать
источник
2020 December 27

V

Vova in pro.jvm
Делал я свой. Спринг вызывает сначала кастомный ContentNegotiationManagerFactoryBean, в которой всего одна стратегия
затем метод
void configureContentNegotiation(final ContentNegotiationConfigurer configurer)
который задаёт favorParameter, его имя и mediaTypes
Далее вызывается уже стандартная ContentNegotiationManagerFactoryBean в которой все три стратегии участвуют в неправильном порядке. То есть кастомный ContentNegotiationManagerFactoryBean не используется

Они пишут про переопределение метода mvcContentNegotiationManager, который тянет так же contentNegotiationManager и ContentNegotiationConfigurer, которые тоже надо переопределять, и так я переопределял пять классов, что в конечном итоге упирается в интерфейс, который принимает только ContentNegotiationManagerFactoryBean, и никакие кастомные туда не пролазят.
источник

V

Vova in pro.jvm
Или вы хотите сказать что реально переопределить только один класс и один метод, как там написано, и всё будет работать.
источник

GA

Gudipati Aravind in pro.jvm
Hii
источник