β Intro.
Java κΈ°λ°μ Spring Frameworkμμ @Beanμ μμ‘΄μ± μ£Όμ
(Dependency Injection)κ³Ό κ°μ²΄ κ΄λ¦¬λ₯Ό μ΄ν΄νλ λ° ν΅μ¬μ μΈ κ°λ
μ
λλ€.
μλμμ νλμ© μμλ΄
μλ€. π
β 1. @Beanμ 무μμΈκ°μ?
- @Beanμ Spring Frameworkμμ κ°λ°μκ° μ§μ μ μν κ°μ²΄λ₯Ό Spring 컨ν μ΄λμ λ±λ‘ν λ μ¬μ©νλ μ λ Έν μ΄μ (Annotation) μ λλ€.
- μ΄ μ λ Έν μ΄μ μ @Configuration ν΄λμ€ λ΄μμ μ¬μ©λλ©°, λ©μλμ λΆμ΄μ ν΄λΉ λ©μλκ° λ°ννλ κ°μ²΄λ₯Ό BeanμΌλ‘ λ±λ‘ν©λλ€.
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
β 2. @Beanμ μν μ 무μμΈκ°μ?
- Spring 컨ν μ΄λμ μ§μ Java μ½λλ‘ κ°μ²΄λ₯Ό μμ±νκ³ λ±λ‘ν©λλ€.
- λ±λ‘λ κ°μ²΄λ Springμ΄ κ΄λ¦¬νκ² λλ©°, λ€λ₯Έ Beanμ μμ‘΄μ± μ£Όμ (DI) λ μ μμ΅λλ€.
- λ³΄ν΅ λ€μκ³Ό κ°μ κ²½μ° μ¬μ©λ©λλ€.:
- μΈλΆ λΌμ΄λΈλ¬λ¦¬λ μ°λ¦¬κ° μ§μ ꡬνν ν΄λμ€μΈλ°, Springμ΄ μλμΌλ‘ μμ±ν΄μ£Όμ§ μλ κ²½μ°
- XML μ€μ μ λμ ν΄μ Java μ½λλ‘ μ€μ μ νκ³ μΆμ λ
β 3. @Beanμ μΈμ μ¬μ©νλμ?
π μ£Όμ μ¬μ© μμ :
-
μ»΄ν¬λλ μ€μΊ(@Component)μΌλ‘ λ±λ‘ν μ μλ κ°μ²΄λ₯Ό λ±λ‘ν λ
(μ: μΈλΆ λΌμ΄λΈλ¬λ¦¬ ν΄λμ€, μ 3μ λΌμ΄λΈλ¬λ¦¬μμ μ 곡νλ ν΄λμ€ λ±) - κ°μ²΄ μμ± λ‘μ§μ΄ 볡μ‘ν΄μ μλμΌλ‘ λ±λ‘νκ³ μΆμ λ
- μ€μ ν΄λμ€λ₯Ό ν΅ν΄ μ€μ κ°μ λ°λΌ Beanμ 쑰건λΆλ‘ μμ±ν λ
- ν μ€νΈ νκ²½μμ νΉμ κ°μ²΄λ§ λ체ν΄μ μ¬μ©νκ³ μΆμ λ
μμ:
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
return template;
}
}
β μμ½
μ§λ¬Έ | μμ½ λ΅λ³ |
---|---|
@Beanμ 무μμΈκ°μ? | κ°λ°μκ° μλμΌλ‘ Spring Beanμ λ±λ‘ν μ μκ² ν΄μ£Όλ μ λ Έν μ΄μ |
μν μ? | Spring 컨ν μ΄λμ λ©μλκ° λ°ννλ κ°μ²΄λ₯Ό BeanμΌλ‘ λ±λ‘ |
μΈμ μ¬μ©νλμ? | μ»΄ν¬λνΈ μ€μΊμ΄ μ΄λ €μ΄ μΈλΆ λΌμ΄λΈλ¬λ¦¬λ 볡μ‘ν μ€μ κ°μ²΄λ₯Ό λ±λ‘ν λ |