Где разместить applicationContext.xml-файл в каталоге Spring project

Я пытаюсь узнать о Spring framework для Java, и я не уверен, где я должен поместить applicationContext.xml-файл для настройки Spring beans. Мой структура каталогов выглядит следующим образом:

Spring directory layout

я вставляю .настройки? Или он должен быть помещен на верхний уровень в springapp?

Спасибо за помощь.

4 ответов


положить в папку WebContent/WEB-INF.

ресурсы, размещенный в WEB-INF папка недоступна из интернета, это внутренние ресурсы приложения. это хорошо, потому что ваш applicationContext.xml не должно быть доступно из интернета.

другие хорошие варианты WebContent/WEB-INF/classes или просто src (оба равны).

файлы и папки с . содержит файлы конфигурации Eclipse, они являются внутренними для Eclipse - не используйте их.


я рекомендую поместить его в src (или src/META-INF) папка и доступ к ней через classpath:applicationContext.xml (или classpath:META-INF/applicationContext.xml). (Eclipse скопирует этот файл в WebContent/WEB-INF / classes при создании военного архива.)

потому что:

  • преимущество мэра src над src/main/webapp/WEB-INF / WebContent-WEB-INF - это, что вы можете получить доступ к src файлы даже в тестах (через classpath:applicationContext.xml)
  • не ставьте его .settings поскольку содержимое этого каталога не развертывается в Веб-приложение (это папка конфигурации eclipse)

конечно, когда вы используете maven, затем поместите файл в src\main\resources (или src\main\resources\META-INF), Maven скопирует их в папку classpath во время компиляции.


WEB-INF или ее поддиректории. Содержимое этой папки упаковывается непосредственно в корневой каталог war file, поэтому файлы, которые находятся непосредственно под этой папкой, доступны как ресурсы с path like '/foo.xml' (или в весенней нотации classpath:/foo.xml


Он должен быть в classpath. Вы можете поместить исходный редактируемый экземпляр в любом месте (например, a config каталог от корня), но тогда вам нужно будет иметь свой инструмент управления сборкой (например,Ant или Maven) скопируйте его в путь к классам для среды выполнения.