๐Ÿง‘๐Ÿปโ€๐Ÿ’ปAppConfig ์Šคํ”„๋ง ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณ€๊ฒฝ(์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ)

DEVJUNยท2021๋…„ 12์›” 20์ผ
0
post-thumbnail

์•ž์„œ ์‚ดํŽด๋ณธ ๋‚ด์šฉ์€ ์ˆœ์ˆ˜ ์ž๋ฐ” ์ฝ”๋“œ๋งŒ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ์— ์Šคํ”„๋ง์„ ์ ์šฉํ–ˆ๋‹ค.

AppConfig ํด๋ž˜์Šค์— ์„ค์ •์„ ๊ตฌ์„ฑํ•œ๋‹ค๋Š” ๋œป์˜ @Configuration์„ ๋ถ™์—ฌ์ฃผ๊ณ , ๊ฐ ๋ฉ”์„œ๋“œ์— @Bean์„ ๋ถ™์—ฌ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค


MemberAppํด๋ž˜์Šค์—๋„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ ์šฉ!

OrderAppํด๋ž˜์Šค์—๋„ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ ์šฉ!

๊ธฐ์กด์—๋Š” AppConfig๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ DI๋ฅผ ์ ์šฉํ–ˆ์ง€๋งŒ ์—ฌ๊ธฐ์„ 

ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

ApplicationContext(์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ)๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉํ–ˆ๋‹ค.
์ฝ”๋“œ๊ฐ€ ๋ฐ”๋€Œ์—ˆ์ง€๋งŒ ์ง์ ‘ AppConfig๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์™€๋Š” ๊ฒฐ๊ณผ๋Š” ๊ฐ™์•˜๋‹ค.




ApplicationContext๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•œ๋‹ค. ApplcationContext๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” XML ๊ธฐ๋ฐ˜๊ณผ ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ ์ž๋ฐ” ์„ค์ • ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š”๋ฐ ์œ„์—์„œ๋Š” @(์• ๋…ธํ…Œ์ด์…˜)๊ธฐ๋ฐ˜์œผ๋กœ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

์ด์ฝ”๋“œ์—์„œ AnnotationConfigApplicationContext(AppConfig.class)๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด์ด๋‹ค.


๋‹ค์Œ์€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒ์„ฑ ๊ณผ์ •์ด๋‹ค.

  1. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    ์ด๋ฒˆ ์˜ˆ์ œ์—์„œ๋Š” AppConfig๋ฅผ ๊ตฌ์„ฑ ์ •๋ณด๋กœ ์ง€์ •ํ–ˆ๋‹ค.


  2. ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋ก

    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜์–ด์˜จ ์„ค์ • ํด๋ž˜์Šค ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ด ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค.

    โš ๏ธ์ฃผ์˜ํ•  ์ ์€ ๋นˆ ์ด๋ฆ„์€ ํ•ญ์ƒ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๋ถ€์—ฌํ•ด์•ผ ํ•œ๋‹คโ€ผ๏ธ



  1. ์Šคํ”„๋ง ๋นˆ ์˜์กด๊ด€๊ณ„ ์„ค์ • - ์ค€๋น„


  2. ์Šคํ”„๋ง ๋นˆ ์˜์กด๊ด€๊ณ„ ์„ค์ • - ์™„๋ฃŒ

    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ์„ค์ • ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ฃผ์ž…(DI)ํ•œ๋‹ค.


๋‹จ์ˆœํžˆ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ณ  ์ฝ”๋“œ ๊ธธ์ด๊ฐ€ AppConfig๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋„ ๊ธด๋ฐ๋„ ์ด๋ ‡๊ฒŒ ์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋ฅผ ์ด ๋‚ด์šฉ๋งŒ์œผ๋กœ๋Š” ์•Œ๊ธฐ๋Š” ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค.

๋’ค์— ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ์—์„œ ์„ค๋ช…ํ•˜๋ ค ํ•œ๋‹ค.

์ถœ์ฒ˜

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

profile
๐Ÿง‘๐Ÿปโ€๐Ÿ’ปiOS

0๊ฐœ์˜ ๋Œ“๊ธ€