인텔리J 유료버전 기준으로 작성된 글 입니다
Java Version 11
프로젝트 생성
인텔리J를 실행 시키고 New Project를 통해 프로젝트를 생성한다. 프로젝트 이름은 HelloWorld 이다.
왼쪽에 수많은 아이콘들이 있는데, 그중 Spring Initializr를 클릭하고 오른쪽과 같이 설정한다.
현재 사용하는 Java version은 11이다.
인텔리J 무료버전은 Spring Initializr가 지원하지 않는다.
Spring Initializr를 통해 손쉽게 시작할 수 있다.
Next를 누르면 최상단에 Spring boot version을 선택할 수 있는데,
3.0.0 버전 이상은 Java17 을 필요로 한다. 사용하는 Java version에 맞게 설정한다.
왼쪽에 여러 라이브러리들이 보이는데,
간단한 기능만 테스트 해볼거니까 Spring Web
과 thymeleaf
만 선택했다.
thymeleaf는 Template Engine의 일종이다.
HTML 이용해서 브라우저에 Hello, World 찍기
Spring을 통해 서버를 실행시키고,
localhost:8080 에 접속하면, Hello, World
가 브라우저에 나타나도록 해보려한다.
생성된 프로젝트의 디렉토리 구조를 살펴보면com.example.helloWorld
라는 패키지가 보이는데,
하위에 controller
패키지를 생성해주고, 그 안에 HelloController
를 생성하고,
resources
하위에 templates
라는 패키지 하위에 hello.html
을 생성해주었다.
HTML
우선 HTML을 먼저 작성해보자.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
Hello, World!
</body>
</html>
그냥 Hello, World! 만 채워 넣었다.
Controller
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/")
public String hello() {
return "hello";
}
}
컨트롤러 클래스 위에는 @Controller
어노테이션을 붙여주어야 한다.
그리고 메소드에는 @GetMapping
이라는 어노테이션이 붙어있는데,
인자값으로 들어오는 값이 url을 의미한다.
즉, \
로 Get요청이 들어오면 해당 메서드가 실행된다.
어노테이션은 사전적 의미로는 주석이라는 뜻이다.
자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다.
즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있다.
return에 있는 값은 조금전 만들었던 HTML파일의 이름이다.
이렇게 해주고 서버를 실행시켜보면,
콘솔에 뭐가 주루룩 뜬다.
현재 실행 시키는 서버에 대한 정보가 포함 되어있는데,
슥 훑다보면,
이런내용을 확인 할 수 있다.
port 8080으로 서버가 열린걸 확인할 수 있다.
브라우저를 켜서
localhost:8080으로 접속을 해보면,
작성해둔 HTML을 확인 할 수 있다.
'Study > Spring' 카테고리의 다른 글
[Spring] DI와 IoC 그리고 컨테이너 (0) | 2023.01.16 |
---|---|
[Spring] 스프링의 역사 (0) | 2023.01.11 |
[Spring] mySql + JPA CRUD (0) | 2023.01.04 |
[Spring] Spring mySql 연결 + JPA (0) | 2023.01.04 |
[Spring] form 태그와 JSON 형식을 이용한 요청 (1) | 2023.01.04 |
댓글