Java&Spring

[Spring Boot]_갠플정리/ 간단방명록 만들기

ZZJJing 2020. 9. 10. 23:05

 

아주 오랜만에 갠플을 다시 하려니 

기억이 안 나서 

정리해두려 한다. (ง •̀_•́)ง✧ 

(기억력이 정말 심각.. ) 

 

일단은 스터디에서 진행하는 '부스트 코스'에 있는 프로젝트 - 방명록 만들기를 간단하게 구현한 것 정리 

(심지어 삭제도 아직 안만듬 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ) 

 

내 맘대로 순서를 정해서 정리해본다. 

 

 

1. STS 에서 new로 파일을 만든다. 

Lombok / MySQL Driver / Spring Web / Spring Data JPA / Spring Boot DevTools를 선택했다. 

 

 

2. 촤라락 알아서 스프링 부트 프로젝트를 만들어줍니다. 

물론 ( ) 은 스스로 만들어야하고 줄 쳐있는 건 기본으로 생성됨 

 

 

3. 일단 우회해서  MySQL 에 테이블을 하나 만든다. 

 

- `regdate` DATETIME NULL DEFAULT NULL COMMENT '등록일',  이걸 자동으로 

regdate 넣고 싶어서 CURRENT_TIMESTAMP 를 넣었는데 안 먹는 것 같다.  (★수정하기!) 

 

이대로 테이블을 만들었더니 이런 주의 표시의 문구가 떳다. 

1681 Integer display width is deprecated and will be removed in a future release. 
 3719 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. 0.047 sec 
파파고를 돌려보니 
해석> 1681 정수 표시 폭은 더 이상 사용되지 않으며 향후 릴리스에서 제거된다. 
3719 'utf8'은 현재 문자 집합 UTF8MB3의 별칭이지만, 향후 버전에서는 UTF8MB4의 별칭이 될 것이다. 모호하지 않게 하려면 UTF8MB4를 사용하는 것을 고려하십시오. 0.047초

그래서 UTF8MB4를 일단 바꾸었는데 이미 테이블 만들어짐 ๑°⌓°๑ ㅋㅋㅋㅋㅋㅋㅋㅋㅋ

일단 만들었으니깐 다음거 ㄱㄱ 

 

 

4. 자, 다시 STS로 돌아와서 환경설정을 해보자. 

 

4-1) pom.xml 에 이게 없는 것 같아서 넣어줌 - 나는 jsp를 씁니다 

 

+ 그리고 뭔 tomcat이 없다고 에러가 떠서 (나는 스프링부트에 있는 서버를 사용할 거라 간편하게!) 

이거를 삭제했따.. 

 

4-2) 데이터베이스 정보를 넣어주기 위해서 application.properties 에 기입한다.

 

어디서 보고 배꼈는데, 노란 줄 그인 곳은 내 거를 넣으면 된다. 

그리고 spring.jpa.hibernate.use-new-id-generator-mappings = false 

는 Entity에서 데이터베이스 시퀀스처럼 자동으로 값 올릴 때 사용하는 거다. 

이 한줄이 없으면 에러 났다. 

 

5. 이제 위쪽 패키지를 만들어본다. 

일단 패키지로 com.ahjin.sbp.controller를 만들고 세트인 [service / serviceImpl] 랑 [dao / model]  랑 추가로 config패키지를 만들고 하나씩 채워 나갈 것임 

 

-  컨트롤러에서 service 인터페이스 주입 

controller

- 서비스 인터페이스 

service -interface

- 서비스 인터페이스 상속 serviceImpl 

- DAO인 repo 주입 

serviceImpl

 

- repo / 그냥 JpaRepository 하면 기본 함수 위에 .save()/.findAll() 같은 거 그냥 사용 가능함. 

- 인터페이스 안에 사용자 정의 함수 정의해서 사용할 수 있음 

dao - repo interface

 

- 클래스 이름이 table이랑 같으면 보통 그냥 가져오던데, 잘안될때도 (?) 있어서 

Table 어노테이션으로 정해줌. @Entity 라는 표시는 꼭 있어야 됨 

- BeanNameAware은 그냥 빈이름확인해보려고 구현한 것임 

- @GeneratedValue : 키 자동생성, application.properties의 마지막 한 줄이 이거랑 세트 

- 컬럼이름도 보통 같으면 다 가지고 오긴 하는데 이것도 그냥 써둠 ㅋ 

VO

 

-. jsp 컨트롤러에서 일일이 쓰기 귀찮으니깐 설정 클래스 만들어서 정의해줌 

- WebMvcConfigurer 구현 

- @Configuration 어노테이션 필수! 

- InternalResourceViewResolver는 어디서 베껴옴!

config

 

 

6. 이제 화면을 만들어봄 

- 메인인 home.jsp는 그냥 확인용으로 

 

- guestBooks.jsp

 

 

- ajaxGuestBookList.jsp

 

 

자, 너무 대충 만들었지만 이 정도로 마무으리 

(๑❛ڡ❛๑)☆

 

결과물! 

 

localhost:8080/guestbooks

 

 

보완사항 

* regdate 수정 

* css 덧대기 

* aop, intercepter 등.. 

추가 추가...