Я делаю Java проект Spring в IntelliJ в качестве упражнения, и я не понимаю, какая у меня ошибка конфигурации файла.
Пожалуйста, посмотрите макет каталога моего проекта, как описано в этом снимок экрана:
Три наиболее важных файла здесь - это классы Main и GameConfig и файл game.properties. Или, чтобы использовать их полные имена каталогов пакетов, "console/src/main/java/academy.learnprogramming.console.Main"
, "core/src/main/java/academy.learnprogramming.config.GameConfig"
и core/src.resources.config.game.properties
Когда я запускаю проект, класс Main пытается запустить следующий код:
package academy.learnprogramming.console;
import academy.learnprogramming.MessageGenerator;
import academy.learnprogramming.NumberGenerator;
import academy.learnprogramming.config.GameConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
private static final Logger log = LoggerFactory.getLogger(com.sun.tools.javac.Main.class);
public static void main(String[] args) {
log.info("Guess the number");
//== create the context first ==
ConfigurableApplicationContext context
= new AnnotationConfigApplicationContext(GameConfig.class);
// rest of code, which we never get to because of an error with the above line
Когда я пытаюсь создать ConfigurableApplicationContext, я пытаюсь вызвать класс GameConfig из пакета Core
. Но вместо этого я получаю эту ошибку времени выполнения:
Исключение в потоке "main" org.springframework.beans.factory.BeanDefinitionStoreException: не удалось проанализировать класс конфигурации [academy.learnprogramming.config.GameConfig]; вложенное исключение java .io.FileNotFoundException: ресурс пути к классу [config / game.properties] не может быть открыт, потому что он не существует
Я не понимаю, почему он думает, что GameConfig не существует, или как это исправить. Похоже, ни одно из найденных решений не дает точного ответа на этот вопрос. Я получил сравнение конфигурации от кого-то, чей код идентичен моему, но никто из нас не понимает, почему их версия работает, а моя нет.
Для сравнения, класс GameConfig
имеет следующий код:
package academy.learnprogramming.config;
import academy.learnprogramming.GuessCount;
import academy.learnprogramming.MaxNumber;
import academy.learnprogramming.MinNumber;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@ComponentScan(basePackages = "academy.learnprogramming")
@PropertySource("classpath:config/game.properties")
public class GameConfig {
//rest of GameConfig code here...
Хотя game.properties так прост:
game.maxNumber = 100
game.guessCount = 10
game.minNumber = 0
Я не могу найти вопрос, похожий на этот, и другие веб-сайты не указывают, что происходит. У кого-нибудь есть идеи, почему эта ошибка может происходить? Любой совет будет неоценим