Spring Ioc container ๊ฐ ๊ด๋ฆฌํ๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋ปํจ
Spring Ioc container ์ ์ํด ์ธ์คํด์คํ, ๊ด๋ฆฌ, ์์ฑ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๋ฐ ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ์์ ์ ์ฌ์ฉ์๊ฐ ์ ์ดํ๋ ๊ตฌ์กฐ์ด๋ค. ์๋ฅผ ๋ค์ด A ๊ฐ์ฒด์์ B ๊ฐ์ฒด์ ์๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด, B ๊ฐ์ฒด๋ฅผ ์ง์ A ๊ฐ์ฒด ๋ด์์ ์์ฑํ๊ณ ๋ฉ์๋๋ฅผ ํธ์ถํด์ผํ๋ค.
ํ์ง๋ง Ioc๊ฐ ์ ์ฉ๋ ๊ฒฝ์ฐ, ๊ฐ์ฒด์ ์์ฑ์ ํน๋ณํ ๊ด๋ฆฌ ์์ ์ฃผ์ฒด์ ๋งก๊ธด๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑํ์ง ์๊ณ , ๊ฐ์ฒด์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ปจํธ๋กคํ๋ ์ฃผ์ฒด๋ ๋ค๋ฅธ ์ฃผ์ฒด๊ฐ ๋๋ค.
์ฆ, ์ฌ์ฉ์์ ์ ์ด๊ถ์ ๋ค๋ฅธ ์ฃผ์ฒด์ ๋๊ธฐ๋ ๊ฒ์ Ioc(์ ์ด์ ์ญ์ ) ์ด๋ผ๊ณ ํ๋ค.
Bean : Spring ์ด ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
Spring Ioc container : Bean ์ ๋ชจ์๋ ํต
Spring Bean Life Cycle
๊ฐ์ฒด ์์ฑ > ์์กด๊ด๊ณ ์ฃผ์
์คํ๋ง ๋น์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋๋ ํ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ค๋น๊ฐ ์๋ฃ๋จ
๋ฐ๋ผ์ ์ด๊ธฐํ ์์ ์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋ชจ๋ ์๋ฃ๋๊ณ ๋ ํ์ ํธ์ถํด์ผํจ
์คํ๋ง์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋๋ฉด ์คํ๋ง ๋น์๊ฒ ์ฝ๋ฐฑ ๋ฉ์๋๋ฅผ ํตํด ์ด๊ธฐํ ์์ ์ ์๋ ค์ฃผ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํจ
๋ํ, ์คํ๋ง์ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์ข ๋ฃ๋๊ธฐ ์ง์ ์ ์๋ฉธ ์ฝ๋ฐฑ์ ์ค์ผ๋ก์จ ์์ ํ๊ฒ ์ข ๋ฃ ์์ ์ ์งํํ ์ ์์
Spring Bean Event Life Cycle
์คํ๋ง ์ปจํ ์ด๋ ์์ฑ > ์คํ๋ง ๋น ์์ฑ > ์์กด๊ด๊ณ ์ฃผ์ > ์ด๊ธฐํ ์ฝ๋ฐฑ > ์ฌ์ฉ > ์๋ฉธ์ ์ฝ๋ฐฑ > ์คํ๋ง ์ข ๋ฃ
** ์ด๊ธฐํ ์ฝ๋ฐฑ : ๋น์ด ์์ฑ๋๊ณ , ๋น์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋ ํ ํธ์ถ
** ์๋ฉธ์ ์ฝ๋ฐฑ : ๋น์ด ์๋ฉธ๋๊ธฐ ์ง์ ์ ํธ์ถ
์คํ๋ง์์ด ์ง์ํ๋ ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ 3๊ฐ์ง
- ์ธํฐํ์ด์ค(InitializingBean, DisposableBean)
- ์ค์ ์ ๋ณด์ ์ด๊ธฐํ ๋ฉ์๋, ์ข ๋ฃ ๋ฉ์๋ ์ง์
- @PostConstruct, @PreDestory ์ด๋ ธํ ์ด์ ์ง์
<Reference>
https://melonicedlatte.com/2021/07/11/232800.html
์คํ๋ง ๋น(Spring Bean)์ด๋? ๊ฐ๋ ์ ๋ฆฌ - Easy is Perfect
melonicedlatte.com
์คํ๋ง ํต์ฌ ์๋ฆฌ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ํ์ต ํ์ด์ง
์ง์์ ๋๋๋ฉด ๋ฐ๋์ ๋์๊ฒ ๋์์ต๋๋ค. ์ธํ๋ฐ์ ํตํด ๋์ ์ง์์ ๊ฐ์น๋ฅผ ๋ถ์ฌํ์ธ์....
www.inflearn.com
[Spring] Dependency Injection (0) | 2022.06.09 |
---|---|
[Spring] Filter ์ Interceptor ์ฐจ์ด (0) | 2022.06.09 |
[Spring] Spring Web MVC (0) | 2022.06.08 |
[Spring] Spring Framework ์ Spring Boot์ ์ฐจ์ด (0) | 2022.06.07 |
Transaction์ด๋? (0) | 2022.04.15 |
๋๊ธ ์์ญ