Spring Annotation - hyunwoo-e/Spring GitHub Wiki

Annotation

  • ์Šคํ”„๋ง์€ classpath scanning์„ ํ†ตํ•ด ์Šคํ…Œ๋ ˆ์˜คํƒ€์ž…์˜ ํด๋ž˜์Šค๋“ค์„ ํƒ์ง€, ์ž๋™์ ์œผ๋กœ ํ›„๋ณด ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋“ฑ๋กํ•œ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ @Component, @Repository, @Service, @Controller์˜ ํด๋ž˜์Šค๋“ค๋งŒ ํ›„๋ณด ์ปดํฌ๋„ŒํŠธ๋กœ ํƒ์ง€๋œ๋‹ค.
  • component-scan ์š”์†Œ์˜ include-filter๋‚˜ exclude-filter๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•„ํ„ฐ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•œ๋‹ค.

@Component

  • ์Šคํ”„๋ง์ด ๊ด€๋ฆฌํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ผ๋ฐ˜์ ์ธ ์Šคํ…Œ๋ ˆ์˜ค ํƒ€์ž…
  • ์œ ์ฆˆ์ผ€์ด์Šค์— ์˜ํ•ด ๊ตฌ์ฒดํ™”๋œ ํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
    • Repository - DAO์— ์ ์šฉ, DB Exception Translation ๊ธฐ๋Šฅ, ์˜์†์„ฑ์„ ๊ฐ€์ง€๋Š” ์†์„ฑ(DB,File)
    • Service - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
    • Controller - MVC ์ปจํŠธ๋กค๋Ÿฌ์ž„์„ ๋ช…์‹œ Spring MVC
    • RestContoller - REST ์ปจํŠธ๋กค๋Ÿฌ์ž„์„ ๋ช…์‹œ Spring REST
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•œ Class์˜ ๊ฒฝ์šฐ @Component ์‚ฌ์šฉ(@Bean ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ)
  • @Component๋Š” ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ฅผ Bean์œผ๋กœ ๋“ฑ๋ก

@Bean

  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปจํŠธ๋กค ๋ถˆ๊ฐ€๋Šฅํ•œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ Bean์œผ๋กœ ๋“ฑ๋กํ•  ๋•Œ ์‚ฌ์šฉ
  • @Bean์€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ Bean์œผ๋กœ ๋“ฑ๋ก

@RequestMapping

  • HTTP ์š”์ฒญ์— specificํ•œ Handler ํด๋ž˜์Šค๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งคํ•‘

@RequestBody

  • Spring MVC์—์„œ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ „์†กํ•œ JSON/XML ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • HTTP ์š”์ฒญ BODY๋ฅผ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

@ResponseBody

  • ๊ฐ์ฒด๋ฅผ JSON/XML ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ
  • ๊ฐ์ฒด๋ฅผ HTTP ์‘๋‹ต BODY๋กœ ๋ณ€ํ™˜

@Valid, BindingResult