JCP, JSR, JEP

JSR-330 - Dependency Injection

JSR-303, JSR-308 - Bean Validation

  • JSR-303, JSR-380
  • JSR-303: @Size, @Max, @Min, @Null, @NotNull
  • JSR-308: @NotEmpty, @NotBlank, @PositiveOrZero, @Email

JEP-359 - Record

record Point(int x, int y) { }
  • 해당 record 클래스는 final 클래스이라 상속할 수 없다.
  • Lombok 의 @Value, @RequiredAllArgument 와 비슷하다. immutable 한 값 객체를 만든다.
  • 각 필드의 getter는 getXXX()가 아닌, 필드명을 딴 getter가 생성된다.(name(), age(), address())
  • 세부 항목으로 가면 훨씬 복잡하다

JSR-376 - Java Platform Module System

JSR-317, JSR-338 - Java Persistence API (JPA)

JSR-339, JSR-370 - Java API for RESTful Web Services (JAX-RS) 2.1

  • @Path, @GET, @PUT, @POST, @DELETE, @HEAD, @Produce, @Consume
  • @PathParam, @QueryParam, @HeaderParam, @Context, @DefaultValue

JSR-310

Time

JSR-310 Java 1.8 부터 사용할 수 있다. 잘못 설계된 Calendar, Date 클래스를 대체한다. (Calendar 와 Date 는 Mutable 하다)
1.7 이하에서 사용하기 위해서 threeten 프로젝트가 있고, ThreeTenABP 에서 안드로이드를 백포트를 한다