[Spring] @Bean๊ณผ static ์ฃผ์์
๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ @Configuration + @Bean์์ static ๋ฉ์๋๋ฅผ ์ธ ๋ ์ฃผ์ํ ์ ์ ์ ๋ฆฌํ๋ค.
@Configuration๊ณผ@Bean์ ์คํ๋ง์ IoC ์ปจํ ์ด๋์ ๋น์ ์์ฑยท๊ด๋ฆฌ๋ฅผ ์์ํ๋ ์ด๋ ธํ ์ด์ ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์static์ ๋ถ์ด๋ฉด ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
1. static ๋น ์ ์ โ ๋ฌธ์ ์ํฉ
1
2
3
4
5
6
7
@Configuration
public class AppConfig {
@Bean
public static MyBean myBean() { // โ ๏ธ static
return new MyBean();
}
}
โ ๏ธ static ๋ฉ์๋๋ก ์ ์๋ ๋น์ ์ธ๋ถ์์ ์ง์ ํธ์ถ ๊ฐ๋ฅํด, ์คํ๋ง์ด ๊ด๋ฆฌํ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ์ง์ ์์ฑํ๋ ์ํฉ์ด ๋ ์ ์๋ค.
๋ฌธ์ ์ 2๊ฐ์ง:
| ๋ฌธ์ | ์ค๋ช |
|---|---|
| ๋จ์ ํ ์คํธ ์ด๋ ค์ | static ๋ฉ์๋๋ Mock ์ฒ๋ฆฌยท์ง์ ํธ์ถ์ด ์ด๋ ค์ ํ ์คํธ๊ฐ ๋ณต์ก |
| ์ํ ๊ณต์ ๋ฌธ์ | static์ ๋ชจ๋ ๊ณณ์์ ๊ณต์ ๋์ด ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์ํ ๊ณต์ ๋ฌธ์ ์ ๋ฐ |
2. ํด๊ฒฐ โ ์ธ์คํด์ค ๋ฉ์๋๋ก
1
2
3
4
5
6
7
@Configuration
public class AppConfig {
@Bean
public MyBean myBean() { // โ
์ธ์คํด์ค ๋ฉ์๋
return new MyBean();
}
}
๐ก ์ธ์คํด์ค ๋ฉ์๋๋ก ์ ์ํ๋ฉด ์คํ๋ง ์ปจํ ์ด๋๊ฐ ๋น์ ์ธ์คํด์ค๋ฅผ ์์ฑยท๊ด๋ฆฌํ๋ค. ๊ทธ๋์ ํ ์คํธ๊ฐ ์ฝ๊ณ ์ํ ๊ณต์ ๋ฌธ์ ๋ ํด๊ฒฐ๋๋ค.
| ๋ฐฉ์ | ๊ด๋ฆฌ ์ฃผ์ฒด | ํ ์คํธ |
|---|---|---|
static @Bean | ๊ฐ๋ฐ์(์ง์ ) | ์ด๋ ค์ |
์ธ์คํด์ค @Bean | ์คํ๋ง ์ปจํ ์ด๋ | ์ฌ์ |
๐ ์ ๋ฆฌ
1
2
3
@Configuration + @Bean
โโ static ๋ฌธ์ ํ
์คํธ ์ด๋ ค์ + ์ํ ๊ณต์
โโ ํด๊ฒฐ ์ธ์คํด์ค ๋ฉ์๋๋ก (์ปจํ
์ด๋๊ฐ ๊ด๋ฆฌ)
| ๊ฐ๋ | ํ ์ค ์ ์ |
|---|---|
| @Bean | ์คํ๋ง ๋น์ ์ ์ |
| static @Bean | ์ง์ (๊ด๋ฆฌยทํ ์คํธ ๋ฌธ์ ) |
| ์ธ์คํด์ค @Bean | ๊ถ์ฅ (์ปจํ ์ด๋ ๊ด๋ฆฌ) |
@Bean์ ์ ์ํ ๋๋ static์ ํผํ๊ณ ์ธ์คํด์ค ๋ฉ์๋๋ฅผ ์ฐ์. ๊ทธ๋์ผ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ๋น์ ์ ๋๋ก ๊ด๋ฆฌํ๊ณ , ํ
์คํธ๋ ์ฌ์์ง๋ฉฐ ์ํ ๊ณต์ ๋ฌธ์ ๋ ๋ฐฉ์ง๋๋ค.
Comments powered by Disqus.