<beans> ๋ฃจํธ ์๋ฆฌ๋จผํธ
<beans> ์๋ฆฌ๋จผํธ ์์ ํ๊ทธ์ ๋ค์์คํ์ด์ค๋ฅผ ๋น๋กฏํ XML ์คํค๋ง ๊ด๋ จ ์ ๋ณด๊ฐ ์ค์ ๋๋ค.
ํ์ผ์ด ์๋์ ์์ฑ๋ ๋, beans ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค๊ฐ ์ ์ธ๋์ด ์์ผ๋ฉฐ, spring-beans.xsd ์คํค๋ง ๋ฌธ์๊ฐ ๋ฑ๋ก๋์ด ์๋ค.
<bean>, <description>, <alias>, <import> ๋ฑ ๋ค ๊ฐ์ ์๋ฆฌ๋จผํธ๋ฅผ ์์ ์๋ฆฌ๋จผํธ๋ก ์ฌ์ฉํ ์ ์๋ค.
<import> ์๋ฆฌ๋จผํธ
<import> ํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ์คํ๋ง ์ค์ ํ์ผ์ ํฌํจํจ์ผ๋ก์จ ํ ํ์ผ์ ์์ฑํ๋ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค. ๋ถ๋ฆฌํ์ฌ ์์ฑํ ์ค์ ํ์ผ์ ํ๋๋ก ํตํฉํ ๋ ์ฌ์ฉํ๋ค.
<bean> ์๋ฆฌ๋จผํธ
์คํ๋ง ์ค์ ํ์ผ์ ํด๋์ค๋ฅผ ๋ฑ๋กํ ๋ ์ฌ์ฉํ๋ค.
- class ์์ฑ์ ํ์์ด๋ค. ํจํค์ง ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ์ ์ฒด ํด๋์ค ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ฒ ์ง์ ํด์ผ ํ๋ค.
- id ์์ฑ์ ๊ฐ์ฒด๋ฅผ ์ํ ์ด๋ฆ์ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค. ์์ฑ๊ฐ์๋ CamelCase๋ฅผ ์ฌ์ฉํ๋ค. ์์ฑ ๊ท์น์ ๋ฐ๋ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค!
- id์ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ name ์์ฑ๋ ์๋ค. id์ ๋ค๋ฅด๊ฒ ๋ค์ํ ๋ฌธ์์ด์ ํ์ฉํ๋ค.
- name๊ณผ id ์์ฑ๊ฐ์ ๋ชจ๋ ์ ์ฒด ์คํ๋ง ํ์ผ ๋ด์๊ฒ ์ ์ผํด์ผ ํ๋ค.
<bean> ์๋ฆฌ๋จผํธ ์์ฑ
-
init-method ์์ฑ
์คํ๋ง ์ปจํ ์ด๋๋ ์ค์ ํ์ผ์ ๋ฑ๋ก๋ ํด๋์ค๋ฅผ ๊ฐ์ฒด ์์ฑํ ๋ ๋ํดํธ ์์ฑ์๋ฅผ ํธ์ถํ๋ค.
๊ฐ์ฒด ์์ฑ ํ, ๋ฉค๋ฒ๋ณ์ ์ด๊ธฐํ ์์ ์ด ํ์ํ ๋ init-method๋ฅผ ์ฌ์ฉํ๋ค.
๋น์ผ๋ก ๋ฑ๋ก๋ ํด๋์ค ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ init-method๋ก ์ง์ ๋ initMethod()๋ฅผ ํธ์ถํ๋ค.
-
destroy-method ์์ฑ
init-method์ ๋ง์ฐฌ๊ฐ์ง๋ก ์คํ๋ง ์ปจํ ์ด๋๊ฐ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ง์ ์ ํธ์ถ๋๋ ๋ฉ์๋์ด๋ค.
-
lazy-init ์์ฑ
์ปจํ ์ด๋๊ฐ ๊ตฌ๋๋ ๋ ์ค์ ํ์ผ์ ๋ฑ๋ก๋ <bean>๋ค์ ์์ฑํ๋ ์ฆ์ ๋ก๋ฉ(pre-loading) ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ฃผ ์ฌ์ฉ ๋์ง ์๋ <bean>์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ ์ ์๋ค.
์ปจํ ์ด๋ ๊ตฌ๋ ์์ ์ด ์๋ <bean>์ด ์ฌ์ฉ๋๋ ์์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๋ก ํ ๋ ์ฌ์ฉ๋๋ค.
-
scope ์์ฑ
์คํ๋ง ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ๋น๋ค์ ๋๋ถ๋ถ ๋จ ํ๋๋ง ์์ฑ๋์ด ์ด์ฉ๋๋ค.
์ด ๊ฐ๋ ์ singleton์ด๋ผ๊ณ ํ๋ค.
scope์ ๊ธฐ๋ณธ ๊ฐ์ singleton์ผ๋ก, scope ์์ฑ์ ์๋ตํ๋ ๊ฒฝ์ฐ๊ฐ ์ผ๋ฐ์ ์ด๋ค.
๋ฐ๋๋ก ์คํ๋ง ์ปจํ ์ด๋๋ก๋ถํฐ ํ์ํ ๊ฐ์ฒด๋ฅผ ์์ฒญํ ๋๋ง๋ค ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ prototype์ ์ฌ์ฉํ ์ ์๋ค.
์ฝ๋ ์์
1.
<bean id="test" class="TestClass" init-method="initMethod" />
2.
<bean id="test" class="TestClass" destroy-method="destroyMethod" />
3.
<bean id="test" class="TestClass" lazy-init="true" />
4.
<bean id="test" class="TestClass" scope="singleton" />
<bean id="test" class="TestClass" scope="prototype" />
'Spring > Spring Quick Start' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Setter ์ธ์ ์ ์ด์ฉํ๊ธฐ (p ๋ค์์คํ์ด์ค) (0) | 2020.12.29 |
---|---|
์์ฑ์ ์ธ์ ์ (Constructor Injection) ์ด์ฉํ๊ธฐ (0) | 2020.12.29 |
์คํ๋ง ์์กด์ฑ ๊ด๋ฆฌ ๋ฐฉ๋ฒ (0) | 2020.12.29 |
์คํ๋ง ์ปจํ ์ด๋์ ์ข ๋ฅ (0) | 2020.12.29 |
IoC, ๋ฎ์ ๊ฒฐํฉ๋ ํ๋ก๊ทธ๋๋ฐ ์ดํดํ๊ธฐ (0) | 2020.12.29 |
ํ๋ ์์ํฌ๋? ์คํ๋ง ํ๋ ์์ํฌ๋? (0) | 2020.12.29 |