μ€νλ§ λΉμ λΌμ΄ν μ¬μ΄ν΄
μ€νλ§ λΉμ κ°λ¨νκ² λ€μκ³Ό κ°μ λΌμ΄νμ¬μ΄ν΄μ κ°μ§λ€. β‘οΈ κ°μ²΄ μμ± -> μμ‘΄κ΄κ³ μ£Όμ
μ€νλ§ λΉμ κ°μ²΄λ₯Ό μμ±νκ³ , μμ‘΄κ΄κ³ μ£Όμ μ΄ λ€ λλ λ€μμμΌ νμν λ°μ΄ν°λ₯Ό μ¬μ©ν μ μλ μ€λΉκ° μλ£λλ€. λ°λΌμ μ΄κΈ°ν μμ μ μμ‘΄κ΄κ³ μ£Όμ μ΄ λͺ¨λ μλ£λκ³ λ λ€μμ νΈμΆν΄μΌ νλ€.
κ·Έλ°λ° κ°λ°μκ° μμ‘΄κ΄κ³ μ£Όμ μ΄ λͺ¨λ μλ£λ μμ μ μ΄λ»κ² μ μ μμκΉ?
- μ€νλ§μ μμ‘΄κ΄κ³ μ£Όμ μ΄ μλ£λλ©΄ μ€νλ§ λΉμκ² μ½λ°± λ©μλλ₯Ό ν΅ν΄μ μ΄κΈ°ν μμ μ μλ €μ£Όλ λ€μν κΈ°λ₯μ μ 곡νλ€.
- μ€νλ§μ μ€νλ§ μ»¨ν μ΄λκ° μ’ λ£λκΈ° μ§μ μ μλ©Έ μ½λ°±μ μ€λ€. λ°λΌμ μμ νκ² μ’ λ£ μμ μ μ§νν μ μλ€.
μ€νλ§ λΉμ μ 체 μ΄λ²€νΈ λΌμ΄νμ¬μ΄ν΄ β‘οΈ μ€νλ§μ»¨ν
μ΄λμμ± -> μ€νλ§λΉμμ± -> μμ‘΄κ΄κ³μ£Όμ
-> μ΄κΈ°νμ½λ°± -> μ¬μ© -> μλ©Έμ μ½λ°± -> μ€νλ§ μ’
λ£
μ°Έκ³ : κ°μ²΄μ μμ±κ³Ό μ΄κΈ°νλ₯Ό λΆλ¦¬νμ
μμ±μλ νμ μ 보(νλΌλ―Έν°)λ₯Ό λ°κ³ , λ©λͺ¨λ¦¬λ₯Ό ν λΉν΄μ κ°μ²΄λ₯Ό μμ±νλ μ± μμ κ°μ§λ€. λ°λ©΄μ μ΄κΈ°νλ μ΄λ κ² μμ±λ κ°λ€μ νμ©ν΄μ μΈλΆ 컀λ₯μ μ μ°κ²°νλλ± λ¬΄κ±°μ΄ λμμ μννλ€.
λ°λΌμ μμ±μ μμμ λ¬΄κ±°μ΄ μ΄κΈ°ν μμ μ ν¨κ» νλ κ² λ³΄λ€λ κ°μ²΄λ₯Ό μμ±νλ λΆλΆκ³Ό μ΄κΈ°ν νλ λΆλΆμ λͺ ννκ² λλλ κ²μ΄ μ μ§λ³΄μ κ΄μ μμ μ’λ€.
λ¬Όλ‘ μ΄κΈ°ν μμ μ΄ λ΄λΆ κ°λ€λ§ μ½κ° λ³κ²½νλ μ λλ‘ λ¨μν κ²½μ°μλ μμ±μμμ νλ²μ λ€ μ²λ¦¬νλκ² λ λμ μ μλ€
λΉ μλͺ μ£ΌκΈ° μ½λ°±
1. μΈν°νμ΄μ€(InitializingBean
, DisposableBean
)
@Override
public void afterPropertiesSet() throws Exception { // InitializingBean μΈν°νμ΄μ€ μμ
connect();
call("μ΄κΈ°ν μ°κ²° λ©μμ§");
}
@Override
public void destroy() throws Exception { // DisposableBean μΈν°νμ΄μ€ μμ
disConnect();
}
- λ¨μ
- μ€νλ§ μ μ© μΈν°νμ΄μ€
- μ΄κΈ°ν, μλ©Έ λ©μλμ μ΄λ¦ λ³κ²½ λΆκ°
- μΈλΆ λΌμ΄λΈλ¬λ¦¬μ μ μ© λΆκ°
- μ΄λ¬ν λ¨μ λ€ λλ¬Έμ κ±°μ μ¬μ©νμ§ μλ λ°©μ
2. μ€μ μ 보μ μ΄κΈ°ν λ©μλ, μ’
λ£ λ©μλ μ§μ
- μ€μ μ 보μ
@Bean(initMethod = "init", destroyMethod = "close")
μ²λΌ μ΄κΈ°ν, μλ©Έ λ©μλλ₯Ό μ§μ ν μ μλ€.
- λ©μλ μ΄λ¦μ μμ λ‘κ² μ€ μ μλ€.
- μ€νλ§μ μμ‘΄νμ§ μλλ€
- μΈλΆ λΌμ΄λΈλ¬λ¦¬μλ μ¬μ©ν μ μλ€
- μ’
λ£ λ©μλ μΆλ‘ : λΌμ΄λΈλ¬λ¦¬λ μ£Όλ‘
close
,shotdown
κ°μ μ΄λ¦μ μ’ λ£ λ©μλλ₯Ό μ¬μ©νλ€. @Beanμ destroyMethodλ κΈ°λ³Έκ°μ΄ μΆλ‘ μΌλ‘ λμ΄ μλ€. μ΄ μΆλ‘ κΈ°λ₯μclose
,shotdown
κ°μ μ΄λ¦μ λ©μλλ₯Ό μλμΌλ‘ νΈμΆν΄μ€λ€. μΆλ‘ κΈ°λ₯μ μ¬μ©νμ§ μ«μΌλ©΄destroyMethod=""
μ²λΌ λΉ κ³΅λ°±μ μ§μ νλ©΄ λλ€
3. @PostConstruct
, @PreDestroy
μ λ
Έν
μ΄μ
μ§μ
@PostConstruct
public void init() {
System.out.println("NetworkClient.init"); connect();
call("μ΄κΈ°ν μ°κ²° λ©μμ§");
}
@PreDestroy
public void close() {
System.out.println("NetworkClient.close");
disConnect();
}
- μ΅μ μ€νλ§μμ κ°μ₯ κΆμ₯νλ λ°©λ²μ΄λ€
- μ€νλ§μ μ’ μμ μΈ κΈ°μ μ΄ μλλΌ JSR-250 λΌλ μλ° νμ€μ΄λ€. λ°λΌμ μ€νλ§μ΄ μλ λ€λ₯Έ 컨ν μ΄λμμλ λμνλ€.
- μ μΌν λ¨μ μ μΈλΆ λΌμ΄λΈλ¬λ¦¬μλ μ μ©νμ§ λͺ»νλ€λ κ²μ΄λ€. μΈλΆ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄κΈ°ν, μ’ λ£ ν΄μΌ νλ©΄ @Beanμ κΈ°λ₯μ μ¬μ©νμ.