본문 바로가기
Error

[JAVA / Spring / Error] - 프로젝트 패키지 및 클래스 변경 에러

by nam_ji 2024. 3. 11.

프로젝트 패키지 및 클래스 변경 에러

패키지 구조 및 클래스 파일 변경 후 발생하는 에러

  • 사이드 프로젝트를 진행하면서 프로젝트 구조를 domain 구조로 변경하고 싶어 변경해 봤습니다.
  • 변경 후 프로젝트를 실행해보니 같은 이름의 Bean이 있다는 에러를 발견하고 왜 이런 에러가 발생하는지 찾아봤습니다.
    *변경 전 bean과 변경 후 bean 이름이 같다는 에러를 발견하고 찾아봤습니다.
  • 에러 내용
    • 더보기
      org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.namji.mytodo.MytodoApplication]
      	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:179) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:416) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar:3.2.2]
      	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar:3.2.2]
      	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar:3.2.2]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar:3.2.2]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar:3.2.2]
      	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar:3.2.2]
      	at com.namji.mytodo.MytodoApplication.main(MytodoApplication.java:10) ~[classes/:na]
      Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'todoController' for bean class [com.namji.mytodo.domain.todo.controller.TodoController] conflicts with existing, non-compatible bean definition of same name and class [com.namji.mytodo.controller.TodoController]
      	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:361) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:288) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:306) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:197) ~[spring-context-6.1.3.jar:6.1.3]
      	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:165) ~[spring-context-6.1.3.jar:6.1.3]
      	... 13 common frames omitted

해결과정1

  • 위에서 발견한 것처럼 스프링이 빈을 중복으로 인식해서 그럴거라 생각하고 검색해보니
    1. out이라는 폴더 제거
    2. build폴더 -> clean -> build
    3. 을 해봤습니다.

결과

  • 위 과정을 거치고 실행시켜 보니 정삭적으로 돌아가는 것을 확인했습니다.