오랜만에 Spring을 하려니 뭐가 뭔지 .. 잘 안잡혀서 부랴부랴 인프런에서 스프링 입문 강의를 들었다.
듣고 있는 중이다.
기억할만한 것들을 적어보겠다.
- 빌드
해당 프로젝트 디렉토리에서 터미널 열고
./gradlew build
cd build/libs
java -jar hello-spring-0.0.1-SNAPSHOT.jar
- gradle 로 만들어진 프로젝트
"hello~" 이 부분엔 build 해서 만들어진 jar 파일 이름 전체를 적어주어야 함.
(maven 으로 빌드하면 war 로 되던데, 그 때에도 java -jar 로 해야 하더라.)
package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name", required = false) String name, Model model) {
model.addAttribute("name", name);
return "hello-template"; // View 에 model 전달 (viewResolver)
}
@GetMapping("hello-string")
@ResponseBody // 데이터를 그대로 내려줌 (HttpMessageConverter)
public String helloString(@RequestParam("name") String name) {
return "hello " + name; // 텍스트 자체로 전달 (StringHttpMessageConverter)
}
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello; // {"name":"spring!"} (MappingJackson2HttpMessageConverter)
}
static class Hello {
private String name;
// Control + enter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}