Spring Boot (Maven)/ShopMiniMall(SpringBoot,Mybatis,Mysql)

스프링부트, jsp, DB연동해서 프로젝트

pjh8838 2024. 6. 15. 18:18
반응형

1. 의존성 설정 ( pom.xml ) - https://mvnrepository.com/ 검색

web, devtools
jstl, mybatis, mysql
jquery, bootstrap, validation

 

 

2. 내장톰캣 port 번호, context 변경 ( application.properties )

 

3. Mysql 연동 설정 ( application.properties )

 

4. MainController (MainServlet) 생성 (패키지도 생성)

Logger logger = LoggerFactory.getLogger(getClass());

 

-> 당연히 처음 생성하니까 GetMapping,  일단 String으로 생성했고 main.jsp로 연결해야 해서 return "main";

 

파라미터에는 request.getParameter 역할을 해줄

@RequestParam(required = false, defaultValue = "top") 저장되는 변수 

저장되는 변수는 Mapper, 서비스 생성 후 적는듯

 

 

5. 서비스 생성 ( 패키지 생성 )

interface, class 생성하면서 패키지도 생성

 

6. DTO 생성 ( 패키지 생성 )    ( DTO는 비즈니스 로직을 포함하지 않는 데이터를 전달하기 위한 단순한 객체 )

별칭 생성, Goods 테이블의 값 생성

-> 우클릭 - 소스 - superclass, using field, getter setter, toString() 생성

 

 

7. 서비스

인터페이스 안에 내용은 지금 적지말고 Mapper 생성후 .java랑 동일하게 작성

 

 

8. ServiceImpl 재정의 (@Service 어노테이션 추가)

 

9. 서비스는 Mapper를 연동해야 해서 Mapper(DAO) 생성

패키지도 생성, xml이랑 .java xml은 파일, .java는 클래스로 생성
아까 application에서 등록한 경로와 패키지가 일치해야함

 

xml
.java

xml 파일의 namespace와 .java의 패키지가 동일한지 확인

 

 

10. Mapper 작성

xml에 sql 작성
.java

public 리턴타입 메서드(id값) 파라미터타입

goodsList는 여러개니까 List로 받아주기

 

 

11. Mapper는 서비스에서 쓰니까 서비스에 Mapper 주입하기

Mapper 주입

주입 받는 방법은 @AutoWired ( 권장안함 ) 혹은 생성자(using Field) 주입

서비스는 Mapper.java랑 동일하게 적어주기

 

 

12. 서비스에 Mapper 주입 후 메서드 호출

Mapper를 받고 주입도 해줘야함!! 중요

 

 

 

 

 

13. 서비스를 쓰는 게 컨트롤러니까 컨트롤러에 서비스 주입하고 메서드 호출

생성자 주입

 

List<GoodsDTO> goodsList = goodsService.goodsList(gCategory);

서비스에 있는 goodsList를 goodsList란 이름으로 받아주기

 

모델에 저장하기

파라미터에 Model or ModelMap

m.addAttribute ( "뷰에 전달될 속성의 이름 ", 뷰에 전달될 실제 데이터(값) )

 

14. main.jsp만 보여주면 끝

 

15. main.jsp에서 bootstrap, jquery  대신 webJar 사용

<link rel="stylesheet"  href="webjars/bootstrap/5.3.3/css/bootstrap.min.css" >
<script src="webjars/jquery/3.7.1/jquery.min.js"></script>

 

16. 이미지, css도 static 밑에 넣으면 가능

static 밑에

 

728x90
반응형