Skip to content

Latest commit

ย 

History

History
61 lines (40 loc) ยท 2.83 KB

File metadata and controls

61 lines (40 loc) ยท 2.83 KB

โœ๏ธ Spring

Bean์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
  • ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •
    • @Component ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ
    • class ๊ธฐ๋ฐ˜์œผ๋กœ ์‹คํ–‰ ์‹œ์ ์— ์ธ์Šคํ„ด์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    • @Controller, @Service, @Repository ๋“ฑ ๋ชจ๋‘ @Component ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์‹คํ–‰ ์‹œ์ ์— ์ž๋™์œผ๋กœ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•œ๋‹ค.
  • ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง๋นˆ ๋“ฑ๋ก
    • @Bean ์–ด๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉ
    • method ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”์„œ๋“œ์—์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ธ์Šคํ„ด์Šค ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•œ๋‹ค.
Spring ์—์„œ ์‚ฌ์šฉ๋˜๋Š” JPA์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

JPA๋ž€ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•˜๋Š” ORM ํ‘œ์ค€์ด๋ฉฐ, ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.

๊ทธ์ค‘ Spring Data JPA๋Š” JPA์˜ ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„์ฒด ์ค‘ Hibernate๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‰ฝ๊ฒŒ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž…๋‹ˆ๋‹ค.

@RequestParam๊ณผ @PathVariable์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

๋‘ ์–ด๋…ธํ…Œ์ด์…˜ ๋ชจ๋‘ URI๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋œ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์˜ค๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

@PathVariable์€ ๊ฐ’์„ ํ•˜๋‚˜๋งŒ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ๊ณ  @RequestParam์€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Spring IOC(์ œ์–ด์˜ ์—ญ์ „)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

Spring IOC๋ž€ ์ œ์–ด์˜ ์—ญ์ „์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด์•ผ ํ•  ์ผ์„ Spring Framwork์—์„œ ๋Œ€์‹  ํ•ด์คŒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ์ƒ๋ช… ์ฃผ๊ธฐ ๋ฐ ์˜์กด์„ฑ์„ ๊ฐœ๋ฐœ์ž ๋Œ€์‹  Spring IOC Container๊ฐ€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Spring์—์„œ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

Spring์—์„œ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ์„ฑ์ž ์ฃผ์ž…, ํ•„๋“œ ์ฃผ์ž…, ์„ธํ„ฐ ์ฃผ์ž…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„๋“œ ์ฃผ์ž…์€ @Autowired ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ํ•„๋“œ์— ์ง์ ‘ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ, ์„ธํ„ฐ ์ฃผ์ž…์€ Setter ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ƒ์„ฑ์ž ์ฃผ์ž…๋„ ๋ง ๊ทธ๋Œ€๋กœ ์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ, ์ด ๋ฐฉ๋ฒ•์ด ํ…Œ์ŠคํŠธ์— ์šฉ์ดํ•˜๊ณ  ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Spring Proxy(ํ”„๋ก์‹œ)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

ํ”„๋ก์‹œ๋ž€ โ€˜๋Œ€๋ฆฌ์ธโ€™์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์™€ ์‹ค์ œ ๊ฐ์ฒด ์‚ฌ์ด์—์„œ ์ค‘๊ฐ„ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Spring AOP๊ฐ€ ํ”„๋ก์‹œ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ์ฃผ๋กœ ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋Šฅ์ด ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.


์ฐธ๊ณ 

https://dev-coco.tistory.com/70

https://yujin-17.tistory.com/entry/Spring-ํ”„๋ก์‹œProxy๋ž€-AOP์™€-ํ”„๋ก์‹œ-๊ธฐ๋ฐ˜-๋™์ž‘-๋ฐฉ์‹