2022.03.07 - [Java/Spring입문] - Spring 입문(1) 프로젝트 생성 및 환경설정 (IDE: Intellij 설치)
Intellij가 더이상 무료버전을 사용할 수 없어서.. 강의를 이클립스로..! 프로젝트 생성은 위와 똑같이 한다.
2022.03.08 - [Java/Spring입문] - Spring 입문(3) View 환경설정
위 참고!
src/main/resources static 폴더안에 index.html을 만든 후 서버를 실행하면 잘 뜨는 것을 확인할 수 있다.
<!DOCTYPE html>
<head>
<title>index</title>
<meta http-equiv="Content-Type" content="text/html : charset=UTF-8">
</head>
<body>
<h1>Hello world!</h1>
<a href="/hello">This is welcome page</a>
</body>
</html>
main java 파일이 있는 곳에 controller패키지와 controller 클래스 파일을 생성!
*패키지를 그냥 controller라고 하면 인식을 못하기 때문에 기본 이름.controller로 한다!!*
package com.example.inflearn_spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "spring!");
return "hello";
}
}
resources 폴더 안에 templates 폴더를 생성한 뒤에 hello.html 파일 생성!
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html : charset=UTF-8">
</head>
<body>
<p th:text="'안녕하세요.' + ${data}">안녕.</p>
</body>
</html>
2022.03.08 - [Java/Spring입문] - Spring 입문(4) cmd창에 빌드하고 실행하기
빌드하고 실행하기 위 참고!
만약 ERROR가 이렇게 난다면!!!!
ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files\Java\jdk-11.0.13\bin
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
=> JAVA_HOME 경로는 \bin을 포함하고 있지 않아야 하고, path에는 %JAVA_HOME%\bin이 추가되어 있어야 한다.!! 꼭 명심!!
해당 프로젝트 폴더로 이동후(cd 명령어 이용) dir 명령어를 통해 gradlew 파일 확인
gradlew build (만약 잘 안된다면 gradlew clean build를 하고 다시 실행)
cd build/libs 폴더로 이동
dir 명령어를 통해 ~~ SNAPHOT.jar 파일 확인
java -jar "위에서 확인했던 파일 -SNAPSHOT.jar
-> 잘 성공이 됐다면 1) Welcome Page로 가서 a태그로 감싼 This is welcome page를 누르면 저절로 2) localhost:8080/hello 페이지로 이동할 수 있게 된다!
-> CMD 창을 닫으면 자동으로 서버도 닫힌다.
2022.03.09 - [Java/Spring입문] - Spring 입문(5) 스프링 웹 개발 기초(정적 컨텐츠, 템플릿엔진(MVC), API)
1. MVC
위에서 만들었던 controller 패키지안에 controller.java안에 새로운 코드 작성
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
- @GetMapping("hello-mvc") === @GetMapping(value="/hello-mvc") === @GetMapping("/hello-mvc")
- @RequestParam(value="name") === @RequestParam(value="name", required=true)
@RequestParam("가져올 데이터 이름") [데이터 타입] [가져온 데이터를 담을 변수]
hello-template.html(view단으로 보여줄 것)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello-template</title>
<meta http-equiv="Content-Type" content="text/html : charset=UTF-8">
</head>
<body>
<p th:text="'hello ' + ${name}">안녕.</p>
</body>
</html>
url에 http://localhost:8080/hello-mvc?name=spring 적게 되면 (name을 적지 않으면 오류! 클라이언트단에서 받게되는 name이 없기 때문에 오류가 생기는 것)
잘 나오는 것 확인 가능!!
2. API
위에서 만들었던 controller 패키지안에 controller.java안에 새로운 코드 작성
@GetMapping("/hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name, Model model) {
return "hello, " + name;
}
=> 여기서 알 수 있는 것 @ResponseBody를 사용하게 되면 return 값 바로 출력 가능! (JSON으로 반환하는 게 기본이다.) 즉 HTTP의 BODY에 문자 내용 직접 반환
api 형식으로 사용해보기 위해 Hello라는 클래스를 만들고 안에 private String name; 변수 생성 뒤 getter setter.
hello 클래스를 사용하기 위해 helloApi라는 getMapping할 메서드를 만들고 객체 생성한다.
=> 보통 객체로 오면 JSON 형식으로 반환!
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
서버 재실행을 해보면 JSON 형식으로 나오는 것 확인 가능
'Java > Spring입문' 카테고리의 다른 글
Spring 입문(6) 회원관리 예제 - 백엔드 개발-1(테스트케이스작성까지) (0) | 2023.04.20 |
---|---|
[Spring입문 - Eclipse(2)] 백엔드 개발 - 회원 관리 예제(테스트포함) (0) | 2022.11.30 |
Spring 입문(12) 스프링 DB 접근 기술: 순수 JDBC(스프링 통합테스트) (0) | 2022.03.11 |
Spring 입문(5) 스프링 웹 개발 기초(정적 컨텐츠, 템플릿엔진(MVC), API) (0) | 2022.03.09 |
Spring 입문(4) cmd창에 빌드하고 실행하기 (0) | 2022.03.08 |