Spring 강의 day 1

주세환·2023년 4월 27일
0

Spring

목록 보기
1/18
post-thumbnail

준비단계

vscode에서 ERD Editor, Extension Pack for Java, Lombok, Spring Boot Extension Pack을 설치한다.


프로젝트 생성

상단바의 View - Command Palette 를 실행하여

Spring Initializr: Create a Maven Project... 를 선택한다.

자바 11을 다운받았으니 2.7.12를 사용할 것이다.

자바 17은 3.1.0을 사용하면 된다.

언어는 Java를 사용할 것이다.

패키지 이름을 설정한다. 기본값 그대로 사용할 것이고

프로젝트 이름을 설정한다. 오늘 날짜인 boot_20230427로 지정한다.

개발은 Jar로, 서비스는 War을 이용한다. Jar 선택

Java버전은 11로 선택.

dependency를 위 체크된 4개를 선택한다.

Java에서 pom.xml에서 직접 입력했던 그 dependency이다.

엔터를 누르면

설치할 폴더를 지정하는 창이 나온다. 늘 사용하든 workspace를 지정하였다.


프로젝트를 열어 pom.xml을 확인해보자. 아까 체크한 dependency들이 나온다.


실행하기

example안에 controller, mapper, service 폴더를 생성하고 controller에 HomeController.java를 생성하자.


package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {
    
    // 127.0.0.1:9090/CONTEXTPATCH/home.do
    @GetMapping(value = "/home.do")
    public String homeGET() {

        //request.getRequestDispatcher("/WEB-INF/home.jsp").forward(request, response);
    return "home";
    }

    // 127.0.0.1:9090/CONTEXTPATH/main.do
    @GetMapping(value = "/main.do")
    public String mainGET(){
        return "main";
    }

}

이렇게 작성하면 Java에서 사용하던 Servlet과 같은 기능을 가지게 된다.


resource의 templates에 home.html을 만든다.
이 위치에서 view를 생성하여 사용한다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    홈화면
</body>
</html>

home.html


server.port=9090

server.servlet.context-path=/ROOT

spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

application.properties

여기는 환경설정이라고 생각하면 된다.


package com.example.boot_20230427;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages = {"com.example.controller"})// 컨트롤러 위치 설정
public class Boot20230427Application {

	public static void main(String[] args) {
		SpringApplication.run(Boot20230427Application.class, args);
	}

}

Boot20230427Application.java

run을 누르면

이렇게 주소를 입력하면 home.html에서 작성한대로 출력된다.


이렇게 수정하면

이렇게 작성한대로 출력된다.


이번엔 이렇게 입력해보았다.

작성한대로 잘 나오게 된다.


resources

Java에서는 css, images, js 파일을 를 resources에 바로 넣었지만

vscode에서는 resources - static 안에 css, images, js 폴더를 생성하여 그 안에 넣으면 된다.


이렇게 css를 활용하면 된다.


같은 방법으로 home.do, main.do를 작성해보았다.


실습

package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

// 단축키 shift + alt + o
// 자동정렬 ctrl+k, f

@Controller
@RequestMapping(value="/board")
public class BoardController {
    // 127.0.0.1:9090/ROOT/board/select.do
    @GetMapping(value="/select.do")
    public String selectGET(){
        return "/board/select";
    }

    // 127.0.0.1:9090/ROOT/board/insert.do
    @GetMapping(value="/insert.do")
    public String insertGET(){
        return "/board/insert";
    }
    
    // 127.0.0.1:9090/ROOT/board/update.do
    @GetMapping(value="/update.do")
    public String updateGET(){
        return "/board/update";
    }
}

controller폴더에 BoardController.java를 생성하여 이렇게 작성해보자.

templates - board 에 select.html 폴더를 만들었다.

주소를 입력하니 작성한대로 나온다.

0개의 댓글