SpringBoot ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ ํด์ผํ ์ผ์ด ์๊ฒจ์ 2.3 ๋ฒ์ ์ 2.5 ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๊ฒฝํ๋ด์ ๊ณต์ ํฉ๋๋ค.
๊ฐ๋ฐ์ธ์ ์ฒ์์ผ๋ก ํด๋ณด๋ ๋ ๊ฑฐ์ ์์คํ ์ ํ๋ ์์ํฌ ์ ๊ทธ๋ ์ด๋ ์์ ์ด์์ต๋๋ค.
๋๋ถ๋ถ์ ์ ๊ท ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ฑฐ๋ deprecate ๋ ์ํ๋ก ์ ์งํ๋ ์ ๋์์ฃ .
๊ทธ๋๋ ํด๋ณด๊ณ ์ถ์๋ ๋ถ๋ถ์ด์์ต๋๋ค. ์ ๋ฌด๊ฐ ๋ง์ด ์ง๋ฃจํด์ง๊ฒ๋ ํ ๋ชซ ํ์ฃ .
์ ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๊ธฐ์ ํ๋ฒ์ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ทธ๋ ์ด๋ ์์ ์ ์งํํด์ผํ๋ค๊ณ ์๊ฐํ์ง๋ง
์ ํฌ ๊ฐ๋ฐํ์ ์ด์ํ๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ทธ๋ ์ด๋ ์์ ์ ์ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ฐ์๊ธฐ ํ๋ ์์ํฌ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋ ค๋ dependency ๊ฐ ๋ง์ด ๊ฑธ๋ ค์์๊ฑฐ๋ผ ์์ํ์ฃ .
์ฐ์ 2.3 -> 2.4 ๋ก ์ฌ๋ผ๊ฐ๋ฉด์ ์ด๋ค ๋ถ๋ถ์ ๋ณํ๊ฐ ์๊ฒผ๋์ง๋ฅผ ํ์ธํ๊ณ ๋์ํ๊ณ ,
2.4 -> 2.5 ์์๋ ์ด๋ค ๋ณํ๊ฐ ์์๋์ง ํ์ธํ์ฌ ๋์ํ๋ฉด ๋ ๊ฑฐ๋ผ ์๊ฐํ๊ณ
์๋ 2๊ฐ์ spring boot release note ๋ฅผ ํ๋ํ๋ ์ดํด๋ดค์ต๋๋ค.
2.3 -> 2.4 ์์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ
- JUnit 5โs Vintage Engine Removed from spring-boot-starter-test
- Config File Processing (application properties and YAML files)
- Config Data Imports
- Embedded database detection
- User-defined MongoClientSettings no longer customized
- Logback Configuration Properties
- Default Servlet Registration
- HTTP traces no longer include cookie headers by default
- Undertow Path on Forward
- Neo4j
- Hazelcast 4
- Elasticsearch RestClient
- R2DBC
- Flyway
- Removal of Plugin Management for Flatten Maven Plugin
- Version management for exec-maven-plugin
- Spring Boot Gradle Plugin
- Metrics export in integration tests
- Deprecations from Spring Boot 2.2 and 2.3
2.4 -> 2.5 ์์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ
- SQL Script DataSource Initialization
- Flyway and Liquibase JDBC URLs
- Spring Data JPA
- Spring Data Solr
- Secure Info Endpoint
- Task Scheduling Harmonization with Spring Integration
- Default Expression Language (EL) Implementation
- Messages in the Default Error View
- Logging Shutdown Hooks
- Gradle Default jar and war Tasks
- Cassandra Throttling Properties
- Customizing jOOQโs DefaultConfiguration
- Groovy 3
- Minimum Requirements Changes
- Hibernate Validator 6.2
์์ ๋์จ ๋ด์ฉ ์ด์ธ์๋ ์ ๊ทธ๋ ์ด๋ ๋๋ฉด์ deprecated ๋๋ ๊ฒ๋ค์ ๋ํ ๋ถ๋ถ๋ค, ๊ทธ๋ฆฌ๊ณ ์๋ก ์ถ๊ฐ ๋ ๋ถ๋ถ๋ค์ ๋ํ ์ค๋ช ์ ํ๋ํ๋ ์ฝ์ด๋ณด๊ณ ํ์ฌ ๋ด๊ฐ ๋ด๋นํ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ๊ฒ๋ค๊ณผ ์ฐ๊ด๋ ๊ฒ๋ค์ ๋ชจ๋ ์ฝ์ด๋ณด์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ spring boot ๋ฒ์ ์ ๋ณ๊ฒฝํ ๋ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๋ถ๋ถ์ ์๋์ง ๋ฐฐํฌ๋ ์ ๋๋์ง๋ฅผ ํ์ธํ์ต๋๋ค.
boot ์ ๊ทธ๋ ์ด๋ ์์ ํ๋ฉด์ ๋ณ๊ฒฝํ๋ ๋ถ๋ถ์ ์๋ ๋ด์ฉ๋ค์ด์์ต๋๋ค.
- spring.config.use-legacy-processing = true ์ค์ ์ ์ถ๊ฐ
- fasterxml.jackson.databind.PropertyNamingStrategy -> PropertyNamingStrategies ํด๋์ค ๋ณ๊ฒฝ
- third-party dependency ๋ค ์ค์์ ์ ๊ทธ๋ ์ด๋๊ฐ ํ์ํ ๊ฒ๋ค ํ์ธ ๋ฐ ์ ๊ทธ๋ ์ด๋
- gradle ๋ฒ์ ์ ๊ทธ๋ ์ด๋ 6.7 -> 6.9
์์ ๋ด์ฉ๋ง๋ณด๋ฉด ์ง์ง ๋ณ๊ฑฐ ์๋์๋ ์์ ์ผ๋ก ๋ณด์ด๋ค์. ์์ ์๊ฐ๋ณด๋ค ๋ฌธ์ ์ฝ์ด๋ณด๋ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ ธ๋๊ฒ ๊ฐ์ต๋๋ค. ๋งํฌ๋ฅผ ํ๊ณ ํ๊ณ ๋ค์ด๊ฐ์ผ ํ์ธํ ์ ์๋ ๊ฒ๋ค์ด ๋ง๋ค๋ณด๋..
์๋ฌดํผ ๋ก์ปฌํ๊ฒฝ์์ ์ ๋์๊ฐ๋ ๊ฒ๊น์ง ํ์ธ ํ๊ณ ๊ฐ๋ฐ์ ์ฌ๋ ค ํ ์คํธ๋ฅผ ํด๋ณด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ผ๋ก ์คํ๋์ง ๋ชปํ๋ ํ์์ด ํ์ธ๋์์ต๋๋ค. ์ ๊ทธ๋ฐ๊ฐ ๋ดค๋๋ jar ํ์ผ๋ช ์ด ์ด์ํ๊ฒ ๋ฐ๋์ด์์์ต๋๋ค. ๋์ -plain postfix๊ฐ ๋ถ์ ํ์ผ๋ช ์ด ๋ฐฐํฌ๋ ๊ฒ์ ํ์ธํ๊ณ ์ด๊ฒ ๋ญ๊ฐ ์ถ์ด ๊ตฌ๊ธ๋ง์ ํด๋ณด๋ release note ์์ ์ค๋ช ์ ์ฐพ์๋ณผ ์ ์์์ง๋ง(๋ด๊ฐ ๋ชป ๋ณธ ๊ฑธ์๋?) 2.5๋ฒ์ ๋ถํฐ ๋ฐ์ํ๋ ํ์์ด์๊ณ gradle ์ค์ ์์ jar task๋ฅผ ๋นํ์ฑํ ์ํค๊ฑฐ๋ ๋ฐฐํฌํ์ผ์ ๋ง๋๋ task ์์ ํด๋น ํ์ผ์ exclude ์ฒ๋ฆฌํ๋ฉด ๋๋ ๋ฌธ์ ์์ต๋๋ค.
๋งค์ผ ๋ฐ๋ณต๋๋ ํน๋ณํ์ง ์์ ์ ๋ฌด๋ค๋ง ํ๋ค๊ฐ ์ฒ์์ผ๋ก ํด๋ณธ ํ๋ ์์ํฌ ์ ๊ทธ๋ ์ด๋ ์์ ์ ๋๋ฌด ์ฌ๋ฏธ์์๊ณ ์ข์ ๊ฒฝํ์ด์์ต๋๋ค.
๋ด๋ ์๋ java 17 + SpringBoot 3 ๊ธฐ๋ฐ์ ์ ๊ท ํ๋ก์ ํธ๋ฅผ ํ๋ ๋ง๋ค์ด์ผ ํ๋๋ฐ ๋ฒ์จ๋ถํฐ ๊ธฐ๋๋๊ณ ํ์ฌ ์ฌ์ฉ์ค์ธ java 11 ์์ 17๊น์ง ์ด๋ค ๋ณํ๋ค์ด ์์๋์ง ํ์ธํ๋ ์๊ฐ์ ๊ฐ์ ธ์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.