Java где Spring ищет файлы конфигурации

161
14 августа 2018, 11:20

Хочу разобраться с конфигурацией в спринге. У меня есть такой main-класс:

package knights;
import knights.base.Knight;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class KnightsMain {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("META-INF/spring/knight.xml");
        Knight knight = context.getBean(Knight.class);
        knight.embarkOnQuest();
        context.close();
    }
}

И структура директорий выглядит так:

.
|-- META-INF
|   |-- MANIFEST.MF
|   `-- spring
|       `-- knight.xml
|-- Spring.iml
|-- pom.xml
|-- src
|   |-- main
|   |   |-- java
|   |   |   |-- knights
|   |   |   |   |-- BraveKnight.java
|   |   |   |   |-- KnightsMain.java
|   |   |   |   |-- RescueDamselQuest.java
|   |   |   |   |-- SlayDragonQuest.java
|   |   |   |   |-- base
|   |   |   |   |   |-- Knight.java
|   |   |   |   |   `-- Quest.java
|   |   |   |   `-- config
|   |   |   |       `-- KnightsConfig.java
|   |   |   `-- main
|   |   |       `-- Main.java
|   |   `-- resources
|   |       |-- course.xml
|   |       `-- knight.xml
|   `-- test
|       `-- java
|           `-- knights
|               `-- BraveKnightTest.java

При запуске получаю ошибку:

Caused by: java.io.FileNotFoundException: class path resource [META-INF/spring/knight.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:329)

Почему спринг не может найти xml-файл? Откуда он начинает поиск?

Answer 1

Положите файл knight.xml в папку src/main/java и

ApplicationContext context = new ClassPathXmlApplicationContext("classpath:knight.xml");
READ ALSO
Как коммитить и пушить в IntelliJ IDEA

Как коммитить и пушить в IntelliJ IDEA

Как пользоваться git из Idea IDE? Я создал новый инициализированный репозиторий на гитхабе, включил поддержку git в IDEA, в remotes добавил новый origin,...

134
Как обменять значения двух переменных?

Как обменять значения двух переменных?

Как можно обменять значения двух переменных в Java? (кроме таких способов):

153
Не работают java script в Java Server Faces

Не работают java script в Java Server Faces

Делаю сайт с помощью технологии JSF, у меня есть template, который имеет следующий код:

183
Стиль javaFX menuItem

Стиль javaFX menuItem

Подскажите, как исправить такую проблему через cssНужно чтобы при наведении на название урока, цвет основного элемента был не синим а тем,...

135