본문 바로가기
프로그래밍/SpringBoot

[스프링 부트 게시판] 스프링부트 게시판 만들기에 앞서

by 소소로드 2019. 11. 16.

 

 

스프링과의 차이 회고하기


 

 

 

그동안 회사에 있는 기본적인 베이스 프로젝트를 토대로 일하다 보니 

스프링 부트를 이용해서 자잘한 프로젝트는 해봤으나

처음부터 게시판을 만들어본지가 좀 된 것 같다. 너무 게을렀던 나에 대한 반성을 해본다.

스프링으로는 만들어본 적이 있었기 때문에 당연히 쉽다고 생각했는데

몇 가지 차이가 있었고, 스프링에서는 안 났던 오류가 스프링부트에서는 나더라

스프링 게시판 만들기용으로 만들다가 여러 오류가 많이 나서 힘들었다. (정말 애를 많이 먹었다)

물론 게시판만들기에 당연히 여러 방식이 있겠지만

내가 했던 방식으로는 안 됐다는 걸 글로 쓰고 싶었다.

 

물론 초보자의 입장이라 아직도스프링과 스프링부트의 설정 차이를 명확하게 아는 것은 아니다.

그래서 스스로 정리해보기 위해 여기에 올려둔다.

계속 업데이트를 올릴 예정이다.

 

 

*

내장 톰캣이 있는 Application 설정,

그 밖에 mybatis-config, mapper 설정은 둘다 동일

 

 

 

 


기존 스프링에서 사용하는 MVC패턴을 적용(실패)

 

 

컨트롤러 - @Controller, @Autowired로 서비스 주입

dao - @Repository, @Autowired로 Sqlsession 주입

(네임스페이스로 mapper와 매칭)

model - 우리가 아는대로 VO

service - @Service 주입, @Autowired로 dao 주입

 

정확하게 말하면 실패까지는 아니고,

초반부터 계속 거슬리는 오류가 하나 있었다.

뷰가 뜨긴 뜨는데 언제 이것 때문에 더 희한한 오류가 날지도 모르는거라

오류를 잡기위해 애썼다.

 

 

2019-11-15 13:03:33.580  WARN 8308 --- [           main] o.m.s mapper.ClassPathMapperScanner : 
No MyBatis mapper was found in '패키지 이름' package. Please check your configuration.

 

이름 그대로 매퍼스캔을 제대로 못한다는 건데, 

매퍼스캔에 패키지 이름을 적어줄 뿐인데 왜 안될까 대환장 잔치.

검색해서 나오는 건 다 해보았지만 실패.

어디에서 꼬인건지 해답을 못 찾은 채 요구사양을 충족하지 못해서라는 글을 발견하고

문서를 보았으나 나의 스프링부트 버전은 2.1이상이고, java(JDK)도 8이상이었다.

(깨알 지식 - 내 자바 버전을 알기 위해서는 윈도우+R < cmd < java -version)

 

 

(MYBATIS를 구축할 수 있는 스프링부트의 최소사양)

 

 

결국 처음부터 다시 구축

 

 

 

 


 

각종 강의, 주워온 것들로 만든 스프링부트 게시판(성공)

 

컨트롤러 - @Controller, @Autowired로 서비스 주입(동일)

dao - @Repository, @Autowired로 Sqlsession 주입

(네임스페이스로 mapper와 매칭)

 

mapper 인터페이스 - @repository 생성

 

model(=vo) - 우리가 아는대로 VO(동일)

service - @Service 주입, @Autowired로 dao 주입(동일)

 

우선 mapper 패키지에 TestMapper 인터페이스를 만들고

아무것도 안 넣었는데도 매퍼스캔 오류가 사라진 것을 발견했다.

주워들은 짧은 지식으로는 @MapperScan에서 src/main/resources의 mapper폴더를

그냥 "." 이렇게 인식하고 "/" 이런식으로 인식하지 못한다는 것을 봄

그것때문인지는 모르고(우리는 그동안 숱하게 리소스 밑에 mapper폴더를 만들어왔잖아..)

여러 강의, 글을 보니까 mapper폴더를(repository=DAO) 따로 만들어주더라!

 

그래서 따라해봤는데 되었다.

어렵다 어려워.. 초보자는 오늘도 두통과 함께 코딩중...

 

저 패키지를 토대로 스프링 게시판 생성하기부터

로그, JPA, 시큐리티등을 천천히 적용하여 올릴 계획이다.

 


전체적인 완성작은 해당 소스를 참고
github.com/yulfsong/spring-boot-hello-project

 

yulfsong/spring-boot-hello-project

Contribute to yulfsong/spring-boot-hello-project development by creating an account on GitHub.

github.com