Documentado aqui afirma
Esse prefixo especial especifica que todos os recursos do caminho de classe que correspondem ao nome especificado devem ser obtidos (internamente, isso ocorre basicamente por meio de uma chamada ClassLoader.getResources (...)) e depois mesclados para formar a definição final do contexto do aplicativo.
Alguém pode explicar isso?
Qual é a diferença entre usar classpath*:conf/appContext.xml
em oposição a classpath:conf/appContext.xml
sem o asterisco.
Respostas:
DEFINIÇÃO SIMPLES
O
classpath*:conf/appContext.xml
simplesmente significa que todos os arquivos appContext.xml sobconf
pastas em todos os seus frascos no classpath será pego e juntou-se em um contexto de aplicação grande.Por outro lado,
classpath:conf/appContext.xml
carregará apenas um desses arquivos ... o primeiro encontrado no seu caminho de classe.fonte
A
classpath*:...
sintaxe é útil principalmente quando você deseja criar um contexto de aplicativo a partir de vários arquivos de definição de bean, usando a sintaxe curinga.Por exemplo, se você construir seu contexto usando
classpath*:appContext.xml
, o caminho de classe será verificado para todos os recursos chamadosappContext.xml
no caminho de classe e as definições de bean de todos eles serão mescladas em um único contexto.Por outro lado,
classpath:conf/appContext.xml
obterá um e apenas um arquivo chamadoappContext.xml
no caminho de classe. Se houver mais de um, os outros serão ignorados.fonte
caminho de classe *: refere-se a uma lista de recursos e carrega todos os arquivos presentes no caminho de classe e a lista pode estar vazia e, se nenhum arquivo estiver presente no caminho de classe, o aplicativo não lança nenhuma exceção (apenas ignora o erro).
caminho de classe: refere-se a um determinado recurso e carrega apenas o primeiro arquivo encontrado no caminho de classe e, se esse arquivo não estiver presente no caminho de classe, gerará uma exceção
fonte
Resource
, pois um recurso aponta para apenas um recurso por vez." além disso, acabei de receber esse erro estranho, foi assim que acabei aqui. Se você for importar recursos, não faz sentido usar o prefixo do caminho de classe curinga.O código fonte do Spring:
fonte