회원가입 정보를 입력하여 db에 회원정보를 저장하려고한다.

저장시 join.jsp를 실행한다.

여기서 회원 가입을 진행하면 우선 web.xml이 작동된다.

web.xml에서 *.do는 모두 presentation-layer.xml에서 실행하도록 설정이 되어있다.

그럼 이제 presentation-layer.xml로 이동해보자.

presentation-layer.xml 파일은 /insert.do가 실행되었을 경우 InsertController가 실행되도록 설정되어 있다.

그러므로 이제 InsertController가 실행되게 된다.

 

여기서 문제의 InsertController로 접근되게 된다.

그런데 여기서 InsertController로 데이터를 입력하게 되면 오류가 발생하게 된다.

NullPointerException 오류가 발생하게된다.

오류는 SchoolDAO.java의 40번째 line에서 발생되는 것을 확인할 수 있다.

그러므로 40번째 line을 확인해보자.

확인해보면 jdbcTemplate.update에서 문제가 발생한다.

그럼 jdbcdTemplate는 뭐가 있길래 NullPointerException(줄여서 NPE이라고 부르겠다)가 발생했을까

확인해보니 null값이 저장된 것을 확인할 수 있다.

왜 null값이 저장된 걸까.

이 이유에 대해서는 이따가 확인해보고 그럼 다른 방법으로 진행해보도록하자.

이번에는 @Autowired로 객체 의존성 주입했던걸 주석해제하고

기전에 new 객체()를 주석처리해보자.

 

처리 후 위에서 진행했던 것과 같이 회원정보를 입력해보자.

 

입력시 정상적으로 저장되는 것을 확인할 수 있다.

그럼 앞서 진행했던 new 객체()는 안되고 @Autowired로 의존성 객체 주입했던 것은 왜 되었던 것일까?

거기에 대한 해답은 아래 사진에서 확인해볼 수 있다.

Autowired 선언한 객체는 위와 같이 ServiceImpl을 지나서 객체 주입이 된다.

그러므로 new를 통해서 객체 주입을 하면 아래 JdbcTemplate에 객체 주입이 안된다.

그러므로 이 부분을 주의해서 진행해야 한다.

+ Recent posts