Parse url var с модулем apache [дубликат]

Я думаю, вы упустили, чтобы проинструктировать весну для сканирования классов с аннотацией.

Вы можете использовать @ComponentScan("packageToScan") в классе конфигурации вашего весеннего приложения, чтобы проинструктировать весну для сканирования.

@Service, @Component и т. д. аннотации добавляют мета-описание.

Spring только вводит экземпляры тех классов, которые либо создаются как bean-элементы, либо помечены аннотацией.

Классы, отмеченные аннотацией, должны быть идентифицированы весной перед инъекцией, @ComponentScan указать весну найдите классы, отмеченные аннотацией. Когда Spring находит @Autowired, он ищет связанный компонент и вставляет требуемый экземпляр.

Добавление только аннотации, не исправляет или облегчает инъекцию зависимостей, Spring должна знать, где искать.

5
задан Delan Azabani 3 January 2011 в 11:10
поделиться

3 ответа

Библиотека uriparser может анализировать строки запросов в пары ключ-значение.

3
ответ дан Alex Reynolds 22 August 2018 в 21:16
поделиться
  • 1
    Благодаря! В качестве дополнительного бонуса для меня репозитории Ubuntu удобно включают liburiparser1 / liburiparser-dev. – Delan Azabani 3 January 2011 в 11:29

Если вы действительно пишете C, и набор ключей известен, вы бы гораздо лучше сохранили значения в struct вместо некоторой раздутой хеш-таблицы. Есть таблица static const:

  • имя ключа
  • тип (целое число / строка, вероятно, достаточное)
  • offset в struct (используя offsetof ] macro)

и использовать это для синтаксического анализа строки запроса и заполнения структуры.

2
ответ дан R.. 22 August 2018 в 21:16
поделиться
  • 1
    +1 от меня, но не будет ли поиск в хэш-таблице быстрее, чем прохождение каждой структуры и сравнение строк? – Delan Azabani 4 January 2011 в 01:16
  • 2
    @Delan: для первоначального поиска типов / смещений хэш будет более эффективным, чем линейный поиск с помощью возможных имен ключей. Вы можете сортировать имена ключей, чтобы получить логарифмическое время или еще лучше (так как список имен ключей известен заранее) используют идеальный хеш, выбранный для них. Это дает лучшую производительность, нулевое использование памяти (все таблицы const) и меньшую сложность кода. – R.. 4 January 2011 в 02:22

Вы можете найти семейство функций ap_getword из библиотеки Apache Portable Runtime (apr).

Большинство подпрограмм синтаксического анализа относятся к семейству ap_getword *, которые вместе обеспечивают функциональность, аналогичную функция split () Perl. Каждый член этого семейства может извлекать слово из строки, разделяя текст на разделители, такие как пробелы или запятые. В отличие от Perl split (), в котором вся строка разделяется сразу, а части возвращаются в списке, функции ap_getword * работают по одному слову за раз. Функция возвращает следующее слово каждый раз, когда оно вызывается, и отслеживает, где оно было, нажимая указатель.

Вы можете найти google для "ap_getword(r->pool" "httpd.h" и найти подходящий исходный код для изучения с.

0
ответ дан vgfeit 22 August 2018 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: