Udokumentowane tutaj stwierdza
Ten specjalny przedrostek określa, że wszystkie zasoby ścieżki klas, które pasują do podanej nazwy, muszą zostać uzyskane (wewnętrznie, zasadniczo dzieje się to za pośrednictwem wywołania ClassLoader.getResources (...)), a następnie scalone w celu utworzenia ostatecznej definicji kontekstu aplikacji.
Czy ktoś może to wyjaśnić?
Jaka jest różnica między używaniem classpath*:conf/appContext.xml
a classpath:conf/appContext.xml
bez gwiazdki.
Odpowiedzi:
PROSTA DEFINICJA
classpath*:conf/appContext.xml
Oznacza po prostu, że wszystkie pliki appContext.xml podconf
foldery we wszystkich swoich słoików na ścieżce klasy zostanie odebrany i połączone w jeden duży kontekście aplikacji.Natomiast
classpath:conf/appContext.xml
załaduje tylko jeden taki plik ... pierwszy znaleziony w ścieżce klas.źródło
classpath*:...
Składnia jest przydatna przede wszystkim, gdy chcemy zbudować kontekst aplikacji z wielu plików definicji fasoli, używając składni wieloznaczny.Na przykład, jeśli konstruujesz swój kontekst przy użyciu
classpath*:appContext.xml
, ścieżka klas zostanie przeskanowana pod kątem każdego zasobu wywoływanegoappContext.xml
w ścieżce klas, a definicje fasoli z nich wszystkich zostaną połączone w jeden kontekst.W przeciwieństwie do
classpath:conf/appContext.xml
tego uzyska jeden i tylko jeden plik wywołanyappContext.xml
ze ścieżki klas. Jeśli jest więcej niż jeden, pozostałe zostaną zignorowane.źródło
classpath *: Odnosi się do listy zasobów i ładuje wszystkie takie pliki obecne w ścieżce klas, a lista może być pusta, a jeśli takiego pliku nie ma w ścieżce klasy, aplikacja nie zgłasza żadnego wyjątku (po prostu ignoruje błąd).
classpath: Odnosi się do określonego zasobu i ładuje tylko pierwszy plik znaleziony na ścieżce klas, a jeśli takiego pliku nie ma w ścieżce klas, zgłosi wyjątek
źródło
Resource
, ponieważ zasób wskazuje tylko jeden zasób na raz." plus właśnie dostałem ten dziwny błąd, tak oto znalazłem się tutaj. Jeśli zamierzasz zaimportować zasób, nie ma sensu używać przedrostka ścieżki klas z symbolem wieloznacznym.Kod źródłowy Springa:
źródło