코드로 배우는 스프링 웹 프로젝트 - 3

김상복·2022년 5월 16일
0

9번 영상


Mapper XML 설정

1. xml 경로 설정

2. xml 파일 안의 내용

Mapper를 사용하는 이유로는 sql문을 좀 더 자유롭게 사용하기 위해서 인데 이에 대해서는 공부를 따로 할 필요가 있어보인다

3. Properties 생성

4. root-context 변경

(1) driverClassName 변경
(2) jdbcURL도 변경


10번 영상


1. MVC에 대한 설명

MVC Model2 패턴 사용이유

유지보수가 좋다, 비용적인 면에서 이득이 많아서

2. 서블릿과 스프링 Controller 의 차이

서블릿

(1) 클래스에서 URL 분기
(2) GET/POST는 메서드 선택과 override
(3) 고정된 파라미터 리턴 타입
(4) 수동으로 직접 forward
(5) 의존성 주입 불가
(6) JSON 등의 처리의 불편함

스프링 Controller

(1) 클래스 혹은 메서드에서 가능
(2) @GetMaping / @PostMapping 사용 가능
(3) 고정 된 파라미터와 리턴 타입
(4) 자동으로 포워드 처리
(5) 스프링을 통해서 다른 객체 주입
(6) @RestController
(7) 기타 어노테이션을 통한 많은 기능 지원, 다양한 뷰 처리 기능

3. 스프링 + 스프링 MVC 구조


11번 영상


새로운 프로젝트 만들기

(1) 새로운 프로젝트 생성
(2) jdk, spring 버전 바꾸기
(3) 해당 코드 추가 (pom.xml)

	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
		<version>${org.springframework-version}</version>
	</dependency>
    
    <!-- Lombok -->
	<dependency>
	    <groupId>org.projectlombok</groupId>
	    <artifactId>lombok</artifactId>
	    <version>1.18.22</version>
	    <scope>provided</scope>
	</dependency>
	
	<!-- Test -->
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.12</version>
		<scope>test</scope>
	</dependency>     
    
    <!-- log4j -->
    <dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
	</dependency>
    

(4) pom.xml servlet 버전 변경

	<!-- servlet -->
	<dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	    <version>4.0.1</version>
	    <scope>provided</scope>
	</dependency>
    
    

(5) 잘 구동되는지 Run on server로 확인하기 (Hello world 가 뜨면 괜찮은것이다)

(6) Server - Modules 의 path을 /로 변경

MVC란??

(1) Servlet / JSP


Controller : URL 처리
Model : DB에서 가져온 데이터
View : 웹 화면

(2) Spring MVC

ViewResolver : 간단하게 이야기하자면 컨트롤러의 반환된 String 문자열이 /WEB-INF/views/ ○○○.jsp 라고하는 ○○○에 들어가게 된다는 것이다
즉, 서버를 실행하면 기본적으로 ○○○.jsp 라는 파일을 찾아서 실행시키게 된다는 것이다

Model 에 대한 설명

해당 컨트롤러에서 파라미터를 추가하고 싶은 경우
위의 방식 대로 컨트롤러의 파라미터에 Model 객체와 변수를 넣어주면 된다
그리고

	model.addAttribute("변수명", 들어갈 데이터);
    

를 넣어주는 코드를 작성함 으로써 파라미터를 전달한다

해당 컨트롤러의 경우 serverTime이라는 변수에 formattedDate라는 데이터를 넣어서

home에 반환하게 된다.

이 home에 반환 한다는 의미는

컨트롤러에 의해 ViewResolver를 통해서

home.jsp라는 파일을 찾게 될 것이다

그리고 난 뒤 home.jsp를 보면

위와 같이 TL로 파라미터를 가져오게 되고 Spring MVC를 통해서 ${serverTime} 에는 formattedDate라는 데이터가 들어가 있다

서버를 실행시키면

보다시피 server is ${serverTime} 이라는 문자열이 출력되는 것이 아닌

해당 데이터가 출력되는 것을 확인할 수 있다

profile
초보 개발자

0개의 댓글