В чем разница между classpath и classpath * в весенней загрузке? - PullRequest
0 голосов
/ 24 апреля 2019

Когда я использую конфигурационный файл баннера весенней загрузки, я нахожу, что:

это работает:

spring.banner.location = classpath: banner.txt

не работает:

spring.banner.location = classpath *: banner.txt

Так в чем же разница между classpath: и classpath *:?

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Впервые с Spring загрузочный показ баннера в исходном коде. Вы можете найти код в SpringApplication.class, метод printBanner используется для показа баннера. mallikarjun сказал, что classPath предназначен для загрузки ресурсов из текущего загрузчика классов (просто для понимания не будет читать ресурсы под jar или другой зависимостью проекта) classpath * сделает jar или другие ресурсы загрузчика классов. Если вы используете classpath *: banner.txt найдет в банке.

1 голос
/ 24 апреля 2019

Из весенней документации

Подстановочный путь к классам основан на методе getResources () базового загрузчика классов. Поскольку большинство серверов приложений в настоящее время предоставляют собственную реализацию загрузчика классов, поведение может отличаться, особенно при работе с файлами JAR. Простой тест, чтобы проверить, работает ли classpath *, состоит в том, чтобы использовать загрузчик классов для загрузки файла из jar-файла в classpath: getClass (). GetClassLoader (). GetResources (""). Попробуйте этот тест с файлами, которые имеют одинаковые имена, но находятся в двух разных местах. В случае возврата неподходящего результата проверьте документацию сервера приложений на предмет настроек, которые могут повлиять на поведение загрузчика классов.

Таким образом, classPath предназначен для загрузки ресурсов из текущего загрузчика классов (просто для понимания не будет читать ресурсы под jar или другой зависимостью проекта)

classpath * сделает jar или другие ресурсы загрузчика классов.

...