CH04 Spring Data Common

Spring Data ๊ตฌ์„ฑ ๋ฐ ํ•™์Šต์ˆœ์„œ

๊น€์˜ํ•œ๋‹˜ ๋„์„œ ๋ฐ ๊ฐ•์˜ ์ •๋ฆฌ์—์„œ ์ด๋ฏธ ๋‹ค๋ฃฌ ๋‚ด์šฉ๋“ค์ด๋ผ์„œ ์ž์„ธํ•œ ์ •๋ฆฌ๋Š” ์ƒ๋žตํ•œ๋‹ค.

AbstractAggregateRoot ์ด์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ

๊ธฐ์กด์— ApplicationEventPublisher ๋ฅผ ํ†ตํ•ด์„œ ์ˆ˜ํ–‰ํ•œ Event ๋ฐœํ–‰ ๋ฐฉ์‹์„ AbstractAggregateRoot ๋ฅผ ์ด์šฉํ•ด์„œ ๋„๋ฉ”์ธ ๋‚ด์—์„œ ๋ฐ”๋กœ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์— domainEvents() ์— ์ž„์‹œ๋กœ ๋‹ด๊ฒผ๋‹ค๊ฐ€ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์ดํ›„์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด์„œ clearDomainEvents() ๋ฅผ ํ†ตํ•ด ์ œ๊ฑฐ๋œ๋‹ค. ์œ„ ๋ชจ๋“  ๊ณผ์ •์€ save() ์™€ ๋™์‹œ์— ๋ฐœ์ƒ๋œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ฒ˜๋ฆฌํ•˜๊ธฐ์ „์— ๋ฆฌ์Šค๋„ˆ ๋“ฑ๋ก์„ ํ•ด๋‘๊ณ  ์›ํ•˜๋Š” ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ด๋‘๋ฉด ๋œ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์€ DDD ๊ตฌํ˜„์— ๋” ์šฉ์ดํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

Spring Data Common Web ๊ธฐ๋Šฅ

Spring Data Common ์ด ์ œ๊ณตํ•ด์ฃผ๋Š” Web support ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค.

Domain Class Converter

๊ฐ€ Converter Registry ์— ๋“ค์–ด๊ฐ€์„œ ํ•ธ๋“ค๋Ÿฌ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ปจ๋ฒ„ํŒ… ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ DomainClassConverter๋‚ด์— ์„ ์–ธ๋œ ์•„๋ž˜ ๋‘ ์ปจ๋ฒ„ํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ปจ๋ฒ„ํŒ… ๊ณผ์ •์—์„œ Repository ๋ฅผ ์‚ฌ์šฉํ•ด ์กฐํšŒํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ธ๋“ค๋Ÿฌ์—์„œ ๋ฐ”๋กœ entity ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

HandlerMethodArgumentResolver

ํ•ธ๋“ค๋Ÿฌ์—์„œ Pageable ์„ ๊ตฌ์„ฑํ•˜๋Š” ์•„๋ž˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๋Š” ์ „์ œํ•˜์— ๋ฐ”๋กœ Pageable ๊ฐ์ฒด๋ฅผ ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

  • page

  • size

  • sort(ex. sort=createdAt,desc)

Last updated