본문 바로가기

TIL

2022/02/18 TIL

Spring Boot 3.0.0 M-1

SpringBoot 3.0부터는 Java17, Spring Framework6 이상을 사용해야 한다.
추가적으로 알아두면 좋을점은 Java EE API에서 Jakarta EE(Jakarat EE 9)로 변경한다는 점이다.
참고1
참고2

Jakarta EE

오라클이 JAVAEE8 릴리즈를 마지막으로 비영리 단체인 이클립스 재단에 JAVA EE로 프로젝트를 이관했습니다.
자바 상표권은 계속 오라클이 가지고 있기 때문에 네임스페이스를 Jakarta로 변경했습니다.
참고3
참고4

JAX-RS

Java API for RESTful Web Services의 약자로 경량화된 방식을 제공하는 자바 API 이며 JavaEE에 JAX-RS 라는 사양이 들어있다. (Jakarta EE 9에도 있다.)
참고5

Quarkus

레드햇에 주도하는 오픈소스 프로젝트이며 핵심 구성은 OpenJDK Hosspot 및 Graalvm 입나다. 또한 Kubernetes에 배포하도록 맞춤화된 Java 프레임워크입니다.
Jakarta REST를 준수하여 Spring에서 말하는 Controller 영역은 아래와 같다.

package org.acme.fruit;

import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Set;

@Path("/fruits")
public class FruitResource {

    private Set<Fruit> fruits = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>()));

    public FruitResource(){
        fruits.add(new Fruit("Apple", "Winter fruit"));
        fruits.add(new Fruit("Pineapple", "Tropical fruit"));
    }

    @GET
    public Set<Fruit> list(){
        return fruits;
    }

    @POST
    public Set<Fruit> add(Fruit fruit){
        fruits.add(fruit);
        return fruits;
    }

    @DELETE
    public Set<Fruit> delete(Fruit fruit){
        fruits.removeIf(existingFruit -> existingFruit.name.contentEquals(fruit.name));
        return fruits;
    }

}

클린아키틱처 21장 : 소리치는 아키텍처

소프트웨어 애플리케이션의 아키텍처도 애플리케이션의 유스케이스에 대해 소리쳐야 한다.
프레임워크는 사용하는 도구일 뿐이다.

어떻게 하면 스프링에 의존하지 않는 코드를 작성할 수 있을지 고민해보고 싶다.

'TIL' 카테고리의 다른 글

2022/02/21 TIL  (0) 2022.02.22
2022/02/19 TIL  (0) 2022.02.20
2022/02/17 TIL  (0) 2022.02.18
2022/02/16 TIL  (0) 2022.02.17
2022/02/15 TIL  (0) 2022.02.16