Programming/Java(Spring)2020. 1. 15. 10:50

JDK 설치

$ sudo apt install openjdk-8-jdk

[링크 : https://daddyprogrammer.org/post/2062/openjdk-install-update-delete/]

 

예제 spring 프로젝트 다운로드(git)

$ git clone https://github.com/spring-guides/gs-rest-service.git

$ cd gs-rest-service/initial

$ ./gradlew bootRun

[링크 : https://spring.io/guides/gs/rest-service/]

 

http://localhost:8080/greeting

외부에서 접근하려면 ip로 바꾸고 8080 포트로 접속하면 된다.

다만.. 위에서 bootRun으로 했기 수정없이 실행했기에 greeting이 아직 생성되지 않아 접근이 되지 않는다.

gs-rest-service/initial/src/main/java/com/example/restservice/Greeting.java

package com.example.restservice;

public class Greeting {

private final long id;
private final String content;

public Greeting(long id, String content) {
this.id = id;
this.content = content;
}

public long getId() {
return id;
}

public String getContent() {
return content;
}
}

 

gs-rest-service/initial/src/main/java/com/example/restservice/GreetingController.java

package com.example.restservice;

import java.util.concurrent.atomic.AtomicLong;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GreetingController {

private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();

@GetMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name) {
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
}

+

위에서 GetMapping으로 greeting일 경우에

Parameter 이기에 greeting?name= 형식으로 값을 받되, 값이 없으면 기본값을 World로 지정해 주는 것으로 보인다.

@로 시작하는 annotation들은 조금 공부가 필요 할 듯 하다.

 

 

이렇게 파일 두개 추가해주고 gs-rest-service/initial 디렉토리로 돌아와

gradlew bootRun을 실행후

http://localhost:8080/greeting

http://localhost:8080/greeting?name=User

을 접속하면 15분(?) 강좌 끝

 

+

gradlwe bootRun은

gradle 도움말에 안나오는 걸 봐서는 spring boot 에서 추가된 taskName으로 추정된다.

[링크 : https://docs.gradle.org/current/userguide/command_line_interface.html]

 

+

[링크 : https://spring.io/guides/gs/spring-boot/] spring boot

[링크 : https://spring.io/guides/gs/accessing-data-rest/] JPA

[링크 : https://spring.io/guides/gs/accessing-data-mysql/] MYSQL

Posted by 구차니