spring6.ver2

정재호·2024년 9월 4일


xml이 여러개 있을 수 있어서 *

spring
서블릿 안나옵니다.
jsp는 나옵니다. view단
view단이 자바스크립트JS로 바뀌면 밖으로 빠져나오니까
점점 안쓰게됩니다.
JS도 문법이 % 에서
tag기반 JSTL EL식
HTML처럼 보이게 바뀜
BOOT는 타임리프라는 VIEW단으로 바뀝니다.

ZIP으로 하기


OPEN > SPRINGMVC01 찾고 > BULID.그래들
하고 톰캣서버에 등록은 해야될것입니다.



Spring Legacy MVC는 위 구조에서 작업하시면 됩니다.

  • XML파일 참조순서
    web.xml - 가장 먼저 참조되는 파일
    root-context.xml - DB설정 관련 파일
    servlet-context.xml - DispatcherServlet(프론트컨트롤러)설정파일

1.web.xml

root - context 올려서 일합니다.
db연결 - api(jdbc연결 dao )

라이브러리가 연결(spring 내부)
다른 라이브러리가 대신 jdbc연결
jdbc 감싸고 있는게 spring jdbc입니다. 23줄
인서트 단위 > 트랜잭션
dao
메서드에 여러개 날라가는경우 , 계좌이체
돈 꺼내고 돈 넣는것
전체성공 , nothing 전체실패 > 트랜잭션 처리를 라이브러리에서 합니다.

그 위에 감싸고 있는것 HiKariCP 데이터 소스
물리적연결하는 객체

메모리에 있는 것
객체지향 객체로 만듬 : 데이터 소스
커넥션 메모리에 연결 클래스로 만들어 씁니다.
ㅇㅇㅇㅇ
ㅇ 한개씩 연결
Mybatis 입장에서는 세션

sql 세션이 여러개 모여져 있는 공장 : sqlSession팩토리
용어 : 커넥션 풀

객체지향 입장에서는 팩토리

Mybatis.org


mybatis db프레임워크

mapper interface
spring > mapper interface > DB
나머지는 다 추상화

mapper interface >연결 SQL Mapper

DispatcherServlet

MVC 작업준비

POJO가 한두개가 아니라서 scan

@Controller 있으면 POJO 클래스 객체를 메모리에 다 올립니다.

annotation-driven : 활성화

HandlerMapping
(각각 맵핑되어있음)보드리스트.do 요청오면 보드리스트 함수 실행
POJO들 분석 어떤 메서드 실행할지 내부적으로 알고있음 관리함
노란색은 이미 만들어져있음

맵핑이 알려줌
저 POJO 에 메서드 저거 실행

저 메서드 실행
db연결





경로를 바꾸는 기술 : forward

셋 어트리뷰트

받아서 그대로 응답

요청해서 응답을 해주는 부분
웹레이어 , 웹프레젠테이션

소규모
현재
굳이 굳이 말하자면 2티어 아키텍처

보통 3티어 아키텍처
DB에 못짭니다.
BoardMapper X
BoardController X

비즈니스레이어, 서비스레이어
3티어 아키텍처

스프링은 3티어아키텍처입니다.

service 에 만듭니다.

기존 spring에서
webapp를 만드니
erp를 만드는 web


클래스 . 각 역할
모델 .
더이상 쪼갤 수 없는 엔티티
컨트롤 > 서비스 써야
서비스 > 레파지토리
기능정의
erp 기능을 한눈에 보는 서비스 메서드

구현순서
서비스 ->

클래스 만드는건 해야해요

구현체 - 인터페이스 - mapper - repository


모델에 넣어야합니다.
set.Attribute 값을 넣습니다.

FrontController
포워딩할때 모델의 주소를 줍니다.


옛날방식입니다.


    // 책 전체목록 요청 처리
    @RequestMapping("/bookList")
    public String bookList(Model model){
        List<?> bookList = bookService.bookList();
        model.addAttribute("bookList", bookList);

        return "bookList"; // bookList.jsp -> ${bookList}
    }

"bookList의 주소" , lookList
${bookList} 반복문을해서 꺼내와야합니다.

요구정의서
테이블정의서


profile
성장하는 하루가 되자

0개의 댓글