์คํ๋ง ๋ถํธ ๊ฐ๋จ ์์
@RestController
public class TestController{
@GetMapping("/test")
public String test() {
return "Hello World!";
}
}
TestController.java์ ์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ SpringBoot๋ฅผ ์คํํ๊ณ
์น ๋ธ๋ผ์ฐ์ ์์ https://localhost:8080/test๋ก ์ ์ํ๋ฉด Hello world๋ฅผ ํ์ธํ ์ ์๋ค
localhost์ธ 127.0.0.0์ ์ปดํจํฐ ๋คํธ์ํฌ์์ ์ฌ์ฉํ๋ ๋ฃจํ๋ฐฑ ํธ์คํธ๋ช ์ด๋ฉฐ ํ์ฌ ์ฌ์ฉ์ค์ธ ์ปดํจํฐ๋ฅผ ์๋ฏธํ๋ค.
8080์ ์คํ๋ง์ ํฌํธ ๋ฒํธ์ด๊ณ , /test๋ @GetMapping์ด๋ผ๋ ์ ๋ํ ์ด์ ์ผ๋ก ๋ฉ์๋์ ๋งคํํ ๋ ์คํ๋ง ๋ถํธ์์ ์ค์ ํ ๊ฒฝ๋ก์ด๋ค.
์คํ๋ง ๋ถํธ ์คํํฐ
์คํ๋ง ๋ถํธ ์คํํฐ๋ ์์กด์ฑ์ ๋ชจ์๋์ ๊ทธ๋ฃน๋๋ค. ์คํํฐ๋ฅผ ํตํด ํ์ํ ๊ธฐ๋ฅ์ ๊ฐํธํ๊ฒ ์ค์ ๊ฐ๋ฅํ๋ค.
"spring-boot-starter-{์์ ์ ํ}" ์ด๋ผ๋ ๋ช ๋ช ๊ท์น์ ๊ฐ์ง๊ณ ์๋ค.
์คํํฐ | ์ค๋ช |
spring-boot-starter-web | Spring MVC๋ฅผ ์ฌ์ฉํ์ฌ RESTful ์น์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ์์กด์ฑ ๋ชจ์ |
spring-boot-starter-test | ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ๊ธฐ ์ํด ํ์ํ ์์กด์ฑ ๋ชจ์ |
spring-boot-starter-validation | ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด ํ์ํ ์์กด์ฑ ๋ชจ์ |
spring-boot-starter-actuator | ๋ชจ๋ํฐ๋ง์ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๊ณตํ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ฝ๊ฒ ํ๋ ์์กด์ฑ ๋ชจ์ |
spring-boot-starter-data-jpa | ORM์ ์ฌ์ฉํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ ๋ชจ์์ธ JPA๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ์์กด์ฑ ๋ชจ์ |
์๋ ๊ตฌ์ฑ
์คํ๋ง ๋ถํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ํ์ ์ค์ ๋ง๋ฅ๋ก ์คํ๋ ์ ์๋๋ก ์ฌ๋ฌ ๋ถ๋ถ์ ์๋๊ตฌ์ฑ ํ๋ค.
์คํ๋ง๋ถํธ๋ ์๋ฒ๋ฅผ ์์ํ ๋ ๊ตฌ์ฑ ํ์ผ์ ์ฝ์ด์์ ์ค์ ํ๋๋ฐ ์ด๋ฅผ ์๋์ค์ ์ด๋ผ๊ณ ํ๋ค.
์๋ ์ค์ ์ META-INF์ ์๋ spring.factories ํ์ผ์ ๋ด๊ฒจ์๋ค.
์คํ๋ง ๋ถํธ3์ ์๋ฐ
์คํ๋ง ๋ถํธ3 ๋ถํฐ๋ ์๋ฐ 17๋ฒ์ ์ด์์ ์ฌ์ฉํด์ผํ๋ค.
์๋ฐ 17์ ์ฃผ์ ๋ณํ๋ก๋ ํ ์คํธ๋ธ๋ก, ๋ ์ฝ๋, ํจํด ๋งค์นญ๋ฑ์ด ์๋ค.
ํ ์คํธ ๋ธ๋ก
17๋ฒ์ ์ด์ ์๋ ์ฌ๋ฌ์ค์ ํ ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํด "/n"์ ์ถ๊ฐํด์ผ ํ์ง๋ง,
17๋ฒ์ ๋ถํฐ๋ """๋ก ๊ฐ์ผ ํ ์คํธ๋ฅผ ์ฌ์ฉํด ์ฌ๋ฌ์ค์ ํ ์คํธ๋ฅผ ํํํ ์ ์๋ค.
String query17 = """
SELECT * FROM "items"
WHERE "status" = "ON_SALE"
ORDER BY "price";
""";
formatted() ๋ฉ์๋
์๋ฐ 17์์๋ ๊ฐ์ ํ์ฑํ๊ธฐ ์ํ formatted() ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ค.
String textBlock17 = """
{
"id" : %d
"name" : %s
}
""".formatted(2,"juice");
๋ ์ฝ๋
๋ ์ฝ๋๋ ๋ฐ์ดํฐ ์ ๋ฌ์ ๋ชฉ์ ์ผ๋ก ํ๋ ๊ฐ์ฒด๋ฅผ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค๊ธฐ ์ํ ๊ธฐ๋ฅ์ด๋ค.
๋ ์ฝ๋๋ ์์์ด ๋ถ๊ฐ๋ฅํ๊ณ , ํ๋ผ๋ฏธํฐ์ ์ ์ํ ํ๋๋ private final๋ก ์ ์๋๋ค.
getter๋ฅผ ์๋์ผ๋ก ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ ๋ํ ์ด์ ์ด๋ ๊ฒํฐ ์ ์๋ ๋ถํ์ํ๋ค.
record Item(String name, int price){
}
Item juice = new Item("juice", 3000);
juice.price();
ํจํด ๋งค์นญ
ํจํด ๋งค์นญ์ ํ์ ํ์ธ์ ์ํด ์ฌ์ฉํ instanceof๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค.
// 11
if(o instanceof Integer){
Inter i = (integer) o;
...
}
// 17
if (o instanceof Integer){
...
}
์๋ฃํ์ ๋ง๋ case ์ฒ๋ฆฌ
switch-case๋ฌธ์ผ๋ก ์๋ฃํ์ ๋ง๋ case ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
static double getIntegerValue(Object o){
return switch(o){
case Double d -> d.intValue();
case Float f -> f.intValue();
case String s -> Integer.parseint(s);
default -> 0d;
};
}
'๐งFramework > SprintBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SpringBoot] ์คํ๋ง ๋ถํธ ํ ์คํธ ์ฝ๋ (0) | 2024.09.15 |
---|---|
[SpringBoot] ์คํ๋ง ๋ถํธ์ ๊ตฌ์กฐ (0) | 2024.09.15 |
[SpringBoot] ์คํ๋ง ๋ถํธ ์์๋ณด๊ธฐ - 2 (0) | 2024.09.15 |
[SpringBoot] ์คํ๋ง๊ณผ ์คํ๋ง ๋ถํธ (0) | 2024.09.14 |