Я играю с инициализатором весенней загрузки, и я нашел что-то, что я не совсем понимаю.
Я создал новый проект только с веб-зависимостью и добавил один компонент с аннотациями @Configuration
и @ImportResource
.
@Configuration
@ImportResource({"classpath*:application.xml"})
public class CollectionConfig {
Затем я добавил пустой файл XML-бинов- application.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
При запуске приложения появляется ошибка: Caused by: org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null"
.
Однако при изменении имени файла с application.xml
на любое другое имя, например applicationContext.xml
или myBeansInAFile.xml
, приложение запускается нормально.
Я не могу найти другое приложениеXML-файл в пути к классам веб-приложения spring-boot по умолчанию.Возможно, это зарезервированное слово?Я чувствую, что упускаю здесь что-то фундаментальное, но не могу найти на это никакой ссылки.
По сути, я пытаюсь понять, почему использование файла XML с именем application.xml не разрешено при весенней загрузке.