🐢🐢꼬부기 LV.2 | 실습•에러/🛡️껍질에 숨기(에러해결)

NoSuchBeanDefinitionException

서화 2026. 1. 14. 22:44

board 한바퀴 정상 작동 과제를 하다 만난 에러다

BoardService boardService = (BoardService)factory.getBean("bs");//룩업 = 객체요청

bs라는 객체를 요청했을때 발생한 에러로 문구를 해석해보면  No bean named 'bs' available

Spring 컨테이너 안에 id 또는 이름이 bs인 Bean이 없다는 뜻이다.

확인을 위해  BoardServiceImpl 에서 어노테이션에 이름이 설정되어 있는지 확인했다

@Service("bs") 
// 컨트롤러 파트
//스프링 컨테이너가 이 패키지만 읽게  xml 설정함
//보드 서비스 인터페스를 상속받음
public class BoardServiceImpl implements BoardService {
	@Autowired //의존성 주입
	private BoardDAO boardDAO;
    }

어노테이션에 이름이 잘 설정 되있었다

🛠️해결 방법

<context:component-scan base-package="com.example.biz.board.impl" />

applicationContext.xml에 스캔할 베이스 패키지의 명을  BoardServiceImpl가 있는 패키지로 변경하여 주었다

⭐번외

현재 파일에는 스프링 컨테이너 말고 숨겨진 컨테이너가 있는데 그것이 바로 pom.xml이다 이 pom.xml은 프로그램을 전반적으로 책임진다

<dependencies>
	<dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
	</dependency>
</dependencies>

pom.xml에 이렇게 디펜던시를 사용하여 의존성을 추가해주면  프로퍼티스 → 클래스패스에 jar 파일을 넣지 않아도 드라이버를 넣은 것처럼 사용할수있다 장점으로는 버전 정보를 맞추지 않아도 알아서 맞춰주고 무겁지 않다