New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. 급전을 친구에게 빌렸는데 오늘이 돈을 주기로 한날.. 그런데 카드값을 내야하는 날도 오늘인데... 이걸 어쩌나...
4. 우리 회사는 중요한 의사 결정을 할때?
5. 열심히 일한 나를 위한 선물을 주고싶다. 어떤게 좋을까?
6. 은행에서 투자상품을 추천받았다. 어떤걸 가입하지?
7. 회사에서의 나는?
8. 꿈에서 깨어나니 20년 전으로 돌아갔다. 당신이 제일 먼저 하는일은?
9. 내가 인사 담당자라면 신규 입사자 채용 시 제일 중요하게 보는것은?
10. 회사에 정말 싫어하는 동료가 있다면?
11. 가난한 집의 가장이 되었다.. 자녀의 생일 날 선물은?
12. 평소 회사 출근 스타일은?
13.회사 체육대회 하는 날이다. 오늘 뭐하지?
14. 나의 업무 스타일은?
Spring Boot 3.1.0 버전이 릴리즈 되었습니다.
무엇이 바뀌었을꼬?
v3.1.0-M2 Pre-release
⭐ New Features
- 테스트 컨테이너 에 대한 종속성 관리 제공 #34712
- GraphQL 페이지 매김 및 정렬 에 대한 지원 구성 #34677
- Testcontainers 관리 컨테이너 에서 서비스를 사용하는 테스트에 필요한 상용구 줄이기 #34658
- 자동 구성이 구성 속성 이외의 소스에서 서비스 연결 정보를 사용하도록 허용 #34657
- 살균 가능한 데이터 추가살균값 #34615
- @GraphQlExceptionHandler 메서드 에 대한 예외 확인자 구성 #34526
- Spring Kafka 재시도 구성에서 고정 지연에 대한 단일 항목에서 동일한 간격에 대한 단일 항목으로 전환합니다. #34504
- 프록싱을 허용하도록 ProblemDetailsExceptionHandler 클래스에서 final을 제거합니다. #34503
- Git 커밋 ID Maven 플러그인의 버전 속성 이름을 git-commit-id-plugin.version에서 git-commit-id-maven-plugin.version #34397로 바꿉니다.
- 빌드 정보 건너뛰기 지원 추가 #34393
- CNB 플랫폼 API 0.11 #34383에 대한 지원 추가
- 불가능한 JDK API 사용을 방지하기 위해 스프링 부트 스타터 부모에서 maven.compiler.release를 구성 #34365
- JoranConfigurators를 로그백 #34361에 미리 전달할 수 있도록 지원을 되돌립니다.
- Add management.wavefront.application.custom-tags property #34223
- 토끼 템플릿을 사용자 정의 할 수 있도록 토끼 템플릿 사용자 지정 프로그램 추가 #34050
- 스프링 권한 부여 서버 지원 추가 #34003
🐞 Bug Fixes
- @EntityScan 사용하면 AOT 인스턴스 공급자 코드 생성 오류 #34731이 발생합니다.
- 포함된 웹 서버가 구성 되지 않은 경우 EmbeddedWebServerFactoryCustomizerAutoConfiguration 이 실행되지 않아야 합니다. #34660
- 클래스 경로에 '.' 가 포함된 경우 동일한 파일을 두 번 가져올 수 있습니다. #34618
- @ConfigurationProperties 변경 가능한 Kotlin 데이터 클래스 에서 더 이상 작동하지 않습니다. #34611
- SnakeYAML 2.0 #34516을 사용할 때 응용 프로그램 .yml로드가 실패하고 NoSuchMethodError
- 이미지 빌드팩이 구성된 경우 podman을 사용한 이미지 빌드가 실패합니다. #34496
- Maven 플러그인은 출력 타임 스탬프가 사용될 때 시간대 - 로컬 타임 스탬프를 사용합니다 # 34431
- Spring Boot 3은 빨간색 메트릭 사용자 지정 태그 키 #34425를 구성하기 위한 구성 속성을 제공하지 않습니다.
- org.springframework.boot.web.embedded.jetty.GracefulShutdown이 잘못된 클래스를 사용하여 로거 #34420을 만듭니다.
- 초기화된 중첩 레코드 속성 값이 있는 @ConfigurationProperties 더 이상 바인딩 되지 않음 #34411
- 사용자 지정 ConfigDataLocationResolver/ConfigDataLoader가 스프링 부트 개발 도구 #3와 결합될 때 0.34375.x에서 실패합니다.
- defaultTracingObservationHandler가 문서화 된 대로 정렬되지 않았습니다. #34370
📔 Documentation
- Java 20 #34727에 대한 문서 지원
- 배치 문서의 오타: 컨텍스트 대신 콘텐츠 #34707
- WebFlux #34706의 사용자 지정 오류 페이지에 대한 규칙 설명
- 작업 실행기응용 프로그램 러너 에서 Javadoc 수정 #34604
- 이전 API #34603에 대한 두 개의 참조 업데이트
- podman 을 사용하여 이미지 빌드 구성을 위한 소켓 위치를 가져오는 방법을 문서화 #34476
- Gradle 8 에 대한 문서 지원 #34463
- 배치 문서 업데이트 #34456
- 장애 조치 스타터 #34423에 링크 추가
- OpenTelemetry 섹션 #34416에서 오타 수정
- 속성 암호화 #34415의 오타 수정
- 스프링 부트 Gradle 플러그인 문서에서 플러그인 DSL을 일관되게 사용 #34392
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.2 #34679
- Upgrade to Caffeine 3.1.5 #34571
- Upgrade to Couchbase Client 3.4.4 #34680
- Upgrade to Dropwizard Metrics 4.2.18 #34681
- Upgrade to Flyway 9.15.2 #34573
- Upgrade to GraphQL Java 20.1 #34715
- Upgrade to Groovy 4.0.10 #34683
- Upgrade to Infinispan 14.0.7.Final #34684
- Upgrade to Jedis 4.3.2 #34700
- Upgrade to Jetty 11.0.14 #34575
- Upgrade to Jetty Reactive HTTPClient 3.0.8 #34574
- Upgrade to jOOQ 3.18.1 #34701
- Upgrade to Json-smart 2.4.10 #34685
- Upgrade to Liquibase 4.20.0 #34578
- Upgrade to Logback 1.4.6 #34686
- Upgrade to MariaDB 3.1.3 #34716
- Upgrade to Maven Compiler Plugin 3.11.0 #34579
- Upgrade to Maven Help Plugin 3.4.0 #34687
- Upgrade to Micrometer 1.11.0-M2 #34546
- Upgrade to Micrometer Tracing 1.1.0-M2 #34547
- Upgrade to Netty 4.1.90.Final #34688
- Upgrade to OpenTelemetry 1.24.0 #34581
- Upgrade to Oracle R2DBC 1.1.1 #34723
- Upgrade to Postgresql 42.6.0 #34689
- Upgrade to Rabbit AMQP Client 5.17.0 #34702
- Upgrade to Reactor Bom 2022.0.5 #34553
- Upgrade to Selenium HtmlUnit 4.8.1.1 #34690
- Upgrade to SLF4J 2.0.7 #34691
- Upgrade to Spring AMQP 3.0.3 #34610
- Upgrade to Spring Data Bom 2023.0.0-M3 #34548
- Upgrade to Spring Framework 6.0.7 #34554
- Upgrade to Spring GraphQL 1.2.0-M1 #34550
- Upgrade to Spring HATEOAS 2.1.0-M1 #34703
- Upgrade to Spring Integration 6.1.0-M2 #34552
- Upgrade to Spring Kafka 3.0.5 #34555
- Upgrade to Spring Retry 2.0.1 #34556
- Upgrade to Spring Security 6.1.0-M2 #34549
- Upgrade to Spring Session 3.1.0-M1 #34551
- Upgrade to SQLite JDBC 3.41.2.0 #34725
- Upgrade to Tomcat 10.1.7 #34582
- Upgrade to UnboundID LDAPSDK 6.0.8 #34583
새로운 기능:
- Testcontainer에 대한 종속성 관리
- GraphQL 페이지 매김 및 정렬 구성 지원
- Testcontainers 관리 컨테이너를 사용한 테스트를 위한 축소된 상용구
- 자동 구성이 구성 속성 이외의 소스에서 서비스 연결 정보를 사용하도록 허용
- SanitizedValue와 함께 SanitizableData 추가
- @GraphQlExceptionHandler 메서드에 대해 구성된 예외 해결 프로그램
- Spring Kafka 재시도 구성에서 고정 지연에 대한 단일 주제에서 동일한 간격에 대한 단일 주제로 전환됨
- 프록싱을 허용하기 위해 ProblemDetailsExceptionHandler 클래스에서 최종 제거됨
- Git Commit ID Maven 플러그인의 버전 속성 이름 변경
- 빌드 정보 건너뛰기 지원 추가
- CNB 플랫폼 API 0.11에 대한 지원 추가
- 불가능한 JDK API 사용을 방지하기 위해 spring-boot-starter-parent에 maven.compiler.release 구성
- JoranConfigurators가 Logback에 미리 전달될 수 있도록 지원을 되돌렸습니다.
- management.wavefront.application.custom-tags 속성 추가
- RabbitTemplates의 사용자 지정을 허용하는 RabbitTemplateCustomizer 추가
- Spring Authorization Server 지원 추가
버그 수정:
- @EntityScan으로 인한 AOT 인스턴스 공급업체 코드 생성 오류 수정
- 임베디드 웹 서버가 구성되지 않은 경우 EmbeddedWebServerFactoryCustomizerAutoConfiguration이 실행되지 않도록 수정
- 클래스 경로에 '.'가 포함된 경우 동일한 파일을 두 번 가져오지 않도록 StandardConfigDataResource를 수정했습니다.
- 변경 가능한 Kotlin 데이터 클래스의 @ConfigurationProperties 수정
- SnakeYAML 2.0을 사용할 때 NoSuchMethodError로 application.yml을 로드하는 문제 수정
- 이미지 빌드팩이 구성된 경우 podman으로 이미지 빌드를 수정했습니다.
- outputTimestamp가 사용될 때 UTC 타임스탬프를 사용하도록 Maven 플러그인 수정
- Spring Boot 3에서 빨간색 메트릭 사용자 지정 태그 키를 구성하기 위한 구성 속성 추가
- org.springframework.boot.web.embedded.jetty.GracefulShutdown이 올바른 클래스를 사용하여 로거를 생성하도록 수정
- 올바르게 바인딩되도록 초기화된 중첩 레코드 속성 값이 있는 @ConfigurationProperties를 수정했습니다.
- 3.0.x에서 spring-boot-devtools와 함께 작동하도록 커스텀 ConfigDataLocationResolver/ConfigDataLoader를 수정했습니다.
- 문서화된 대로 주문되도록 defaultTracingObservationHandler 수정
선적 서류 비치:
- Java 20 및 Gradle 8에 대한 문서화된 지원
- WebFlux의 사용자 지정 오류 페이지에 대한 명확한 규칙
- 업데이트된 배치 문서
- 장애 조치 스타터에 대한 링크 추가
- 다양한 섹션의 오타 수정
종속성 업그레이드:
Byte Buddy, Caffeine, Couchbase Client, Dropwizard Metrics, Flyway, GraphQL Java, Groovy, Infinispan, jOOQ, Json-smart, Liquibase, Logback, MariaDB, Maven Compiler Plugin, Maven Help Plugin, Micrometer, Netty, OpenTelemetry, Oracle R2DBC, Postgresql, Rabbit AMQP Client, Reactor Bom, Selenium HtmlUnit, SLF4J, Spring AMQP, Spring Data Bom, Spring Framework, Spring GraphQL, Spring HATEOAS, Spring Integration, Spring Kafka, Spring Retry, Spring Security, Spring Session, SQLite JDBC, Tomcat 및 UnboundID LDAPSDK.
Java 예시 예시
이 예제에서는 Testcontainers 라이브러리의 @Container 주석을 사용하여 테스트가 실행되기 전에 시작되고 테스트가 완료되면 중지되는 PostgreSQL 컨테이너를 정의합니다. 또한 테스트 클래스에서 Testcontainers 지원을 활성화하기 위해 @Testcontainers 주석을 사용하고 있습니다. 이러한 방식으로 Testcontainer를 사용하면 우리가 제어하는 일관되고 격리된 환경에서 테스트를 실행할 수 있습니다.
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;
@Testcontainers
@SpringBootTest
public class MyServiceTest {
@Container
static PostgreSQLContainer<?> postgreSQLContainer =
new PostgreSQLContainer<>(DockerImageName.parse("postgres:latest"))
.withDatabaseName("mydb")
.withUsername("username")
.withPassword("password");
@Autowired
private MyService myService;
@Test
void testMyService() {
// use myService to test functionality
}
}
Kotlin 예시
이 예에서는 'companion object' 구문을 사용하여 Testcontainers 컨테이너를 정적 필드로 정의합니다. 우리는 또한 myService 필드를 선언하기 위해 lateinit var 구문을 사용하고 있습니다. Spring의 의존성 주입 메커니즘에 의해 채워질 것이기 때문입니다. 이러한 사소한 구문 차이를 제외하면 Kotlin 코드는 이전 예제의 Java 코드와 매우 유사합니다.
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.testcontainers.containers.PostgreSQLContainer
import org.testcontainers.junit.jupiter.Container
import org.testcontainers.junit.jupiter.Testcontainers
import org.testcontainers.utility.DockerImageName
@Testcontainers
@SpringBootTest
class MyServiceTest {
companion object {
@Container
val postgreSQLContainer: PostgreSQLContainer<*> = PostgreSQLContainer<Nothing>(DockerImageName.parse("postgres:latest"))
.withDatabaseName("mydb")
.withUsername("username")
.withPassword("password")
}
@Autowired
lateinit var myService: MyService
@Test
fun testMyService() {
// use myService to test functionality
}
}
전반적으로 변경 사항은 새로운 기능, 버그 수정 및 종속성 업그레이드를 도입하는 것으로 보입니다. 이러한 업데이트는 Spring Boot 애플리케이션의 기능, 안정성 및 보안을 개선하고 최신 버전의 타사 라이브러리로 최신 상태를 유지하는 데 도움이 될 수 있습니다. Testcontainers 종속성 관리 및 Spring Authorization Server 지원의 추가는 각각 테스트를 단순화하고 Spring Boot 애플리케이션에 새로운 기능을 추가할 수 있으므로 특히 주목할 만합니다.