-
Spring μμ (boot ν¬ν¨) componentμ beanμ μ°¨μ΄λ?
Spring Boot (μ ννλ Spring Framework)μμ
@Componentμ@Beanμ λͺ¨λ Spring 컨ν μ΄λμ κ°μ²΄(λΉ, Bean)λ₯Ό λ±λ‘νλ λ° μ¬μ©λμ§λ§, μ¬μ©νλ λ°©μκ³Ό λͺ©μ μ΄ μ‘°κΈ λ€λ¦ λλ€.
πΉ 1.
@Component- ν΄λμ€μ λΆμ΄λ μ΄λ Έν μ΄μ
- Springμ΄ μλμΌλ‘ ν΄λΉ ν΄λμ€λ₯Ό λΉμΌλ‘ λ±λ‘
@ComponentScanμ μν΄ νμ§λμ΄ λ±λ‘λ¨
@Component public class MyComponent { public void doSomething() { System.out.println("Component is working"); } }β νΉμ§
- μλ λ±λ‘
@Service,@Repository,@Controllerλ μ¬μ€@Componentμ νΉμν λ²μ - ν¨ν€μ§ μ€μΊ κ²½λ‘ μμ μμ΄μΌ ν¨
πΉ 2.
@Bean- λ©μλμ λΆμ΄λ μ΄λ Έν μ΄μ
- μ£Όλ‘
@Configurationν΄λμ€ μμμ μ¬μ© - κ°λ°μκ° μ§μ κ°μ²΄λ₯Ό μμ±νκ³ κ·Έ κ²°κ³Όλ₯Ό Spring 컨ν μ΄λμ λ±λ‘
@Configuration public class AppConfig { @Bean public MyComponent myComponent() { return new MyComponent(); // μλ λ±λ‘ } }β νΉμ§
- μλ λ±λ‘
- μΈλΆ λΌμ΄λΈλ¬λ¦¬ κ°μ²΄, μ€μ κ°μ΄ νμν κ²½μ° λ± μ μ°ν κ°μ²΄ μμ± κ°λ₯
- λ©μλ μ΄λ¦μ΄ λΉ μ΄λ¦μ΄ λ¨ (νμμ
@Bean(name = "beanName")μΌλ‘ μ§μ κ°λ₯)
π μ 리
νλͺ© @Component@BeanλΆμ΄λ μμΉ ν΄λμ€ λ©μλ λ±λ‘ λ°©μ μλ λ±λ‘ (μ»΄ν¬λνΈ μ€μΊ) μλ λ±λ‘ (κ°λ°μκ° λͺ μμ μΌλ‘ μμ±) μ¬μ© μ©λ μ ν리μΌμ΄μ λ΄λΆ ν΄λμ€ μΈλΆ λΌμ΄λΈλ¬λ¦¬, 볡μ‘ν μ΄κΈ°ν μ€μ ν΄λμ€ νμ μ¬λΆ νμ μμ @Configurationνμ
π μΈμ μ¨μΌ ν κΉ?
- λ΄κ° λ§λ ν΄λμ€λ₯Ό λΉμΌλ‘ λ±λ‘νκ³ μΆλ€λ©΄ β
@Component - μΈλΆ λΌμ΄λΈλ¬λ¦¬ κ°μ²΄λ 쑰건μ λ°λΌ λ¬λΌμ§λ κ°μ²΄ μμ±μ΄ νμν λ β
@Bean
CreatedSat, 21 Dec 2024 17:14:05 +0900 -
@Value μ κ°μ΄ λ°μΈλ© λμ§ μμΌμ κ°μ?
-
Spring Boot μ ν리μΌμ΄μ μ μ€νμν¬ λ @Valueλ‘ (org.springframework.beans.factory.annotation.Value) κ°μ μ£Όμ νλ €κ³ ν λ μκ°κ³Όλ λ€λ₯΄κ² @Valueλ‘ μ£Όμ ν κ°μ΄ μ λλ‘ λ°μΈλ©λμ§ μλ κ²½μ°κ° μμ΅λλ€.
-
μ΄λ¬ν νμμ μ μκΈ°λ©°, μ΄λ»κ² ν΄κ²°ν μ μλμ§ μμλ³΄κ² μ΅λλ€.
-
μ°μ Spring Bootλ₯Ό μ€νμν¬λ loading μμλ μ΄λ»κ² λλμ§ λ¨Όμ μ΄ν΄λ³΄κ² μ΅λλ€.
-
Spring Boot μ ν리μΌμ΄μ μ΄ μ€νλ λμ λ‘λ© μμλ ν¬κ² λ€μκ³Ό κ°μ λ¨κ³λ‘ μ΄λ£¨μ΄μ§λλ€. μ΄ μμλ Spring Frameworkμ λμ μ리μ κΈ°λ°νλ©°, Spring Boot νΉμ μ κΈ°λ₯λ€μ΄ μΆκ°μ μΌλ‘ ν¬ν¨λ©λλ€.
CreatedWed, 27 Nov 2024 17:14:05 +0900 -
-
Clean Code μλ‘
Abstract
μ£Όλμ΄ κ°λ°μμΌμλ‘ μΌλ¨ κΈ°λ₯ ꡬνμ μ°μ μΌλ‘ μκ°νλ€. λ€μ λ§ν΄μ λμ²΄λ‘ μ½λμ ν리ν°λ λ·μ μ΄κ³ μκ°ν κΈ°λ₯λλ‘ λμκ°λ μ½λλ‘ μμ±νλ©΄ ν μΌμ λ€νλ€κ³ μκ°νλ€. μλ, λΉλ¨ μ£Όλμ΄ κ°λ°μλ§μ λ¬Έμ λ μλ μλ μλ€. μ κ³μ μμΌλ©΄μ 보μμ¨ λ§μ κ°λ°μλ€μ λμλ΄€μ λ, μ½λ νμ§μ μκ°νλ κ°λ°μλ 그리 λ§μ§ μμλ€. μ¬μ§μ΄ Clean Codeκ° λμ§ λͺ¨λ₯΄λ μ¬λλ λ§λ€. νμ§λ§ μ½λμλ νμ§μ΄λΌλ κ²μ λΆλͺ ν μ‘΄μ¬νλ©°, κ°λ°μκ° μμ±ν μ½λκ° μ΄λ μ λμ νμ§ μμ€μ κ°μΆμλκ°λ κ°κ΄μ μΌλ‘ νκ°λλ κ²μ΄ μ’λ€. λͺ¨λ κ°λ°μλ dirty νμ§ μμ cleanν μ½λλ₯Ό μμ±νκΈ° μν΄ κ³μ λ Έλ ₯ν΄μΌ νλ€.
CreatedWed, 27 Nov 2024 17:14:05 +0900