πŸ“Œ 빈 μŠ€μ½”ν”„ 1

빈 μŠ€μ½”ν”„λž€?

  • 빈이 μ‘΄μž¬ν•  수 μžˆλŠ” λ²”μœ„λ₯Ό λœ»ν•œλ‹€.


빈 μŠ€μ½”ν”„μ˜ μ’…λ₯˜

  • 싱글톀 : κΈ°λ³Έ μŠ€μ½”ν”„, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ˜ μ‹œμž‘κ³Ό μ’…λ£ŒκΉŒμ§€ μœ μ§€λ˜λŠ” κ°€μž₯ 넓은 λ²”μœ„μ˜ μŠ€μ½”ν”„λ‹€.
  • ν”„λ‘œν† νƒ€μž… : μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” ν”„λ‘œν† νƒ€μž… 빈의 생성과 μ˜μ‘΄κ΄€κ³„λ₯Ό μ£Όμž…κΉŒμ§€λ§Œ κ΄€μ—¬ν•˜κ³  더이상 κ΄€λ¦¬ν•˜μ§€ μ•ŠλŠ” 맀우 짧은 λ²”μœ„μ˜ μŠ€μ½”ν”„λ‹€
  • μ›Ή κ΄€λ ¨ μŠ€μ½”ν”„
    • request : μ›Ή μš”μ²­μ΄ λ“€μ–΄μ˜€κ³  λ‚˜κ°ˆλ•ŒκΉŒμ§€ μœ μ§€λ˜λŠ” μŠ€μ½”ν”„
    • session : μ›Ή μ„Έμ…˜μ΄ μƒμ„±λ˜κ³  μ’…λ£Œλ  λ•Œ κΉŒμ§€ μœ μ§€λ˜λŠ” μŠ€μ½”ν”„
    • application : μ›Ήμ˜ μ„œλΈ”λ¦Ώ μ»¨ν…μŠ€νŠΈμ™€ 같은 λ²”μœ„λ‘œ μœ μ§€λ˜λŠ” μŠ€μ½”ν”„λ‹€.


μ»΄ν¬λ„ŒνŠΈ μ–΄λ…Έν…Œμ΄μ…˜μ— μžλ™λ“±λ‘


@Scope("prototype")
@Component
public class HelloBean {

}


μˆ˜λ™ 등둝

@Scope("prototype")
@Bean
PrototypeBean HelloBean(){
        return new HelloBean();
        }

싱글톀 빈 μš”μ²­ κ³Όμ •

싱글톀 빈 1

  1. 싱글톀 μŠ€μ½”ν”„μ˜ λΉˆμ„ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— μš”μ²­ν•œλ‹€.
  2. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” 본인이 κ΄€λ¦¬ν•˜λŠ” μŠ€ν”„λ§ λΉˆμ„ λ°˜ν™˜ν•œλ‹€.
  3. 이후에 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— 같은 μš”μ²­μ΄ 와도 같은 객체 μΈμŠ€ν„΄μŠ€μ˜ μŠ€ν”„λ§ λΉˆμ„ λ°˜ν™˜ν•œλ‹€.


ν”„λ‘œν†  νƒ€μž… μŠ€μ½”ν”„

  • 싱글톀 μŠ€μ½”ν”„μ˜ λΉˆμ„ μ‘°νšŒν•˜λ €λ©΄ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” 항상 같은 μΈμŠ€ν„΄μŠ€μ˜ μŠ€ν”„λ§ λΉˆμ„ λ°˜ν™˜ν•œλ‹€.

  • 반면, ν”„λ‘œν† νƒ€μž…μ˜ μŠ€μ½”ν”„λ₯Ό μ»¨ν…Œμ΄λ„ˆμ— μ‘°νšŒν•˜λ©΄ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” 항상 μƒˆλ‘œμš΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•΄μ„œ λ°˜ν™˜ν•œλ‹€.


싱글톀 빈 2

  1. ν”„λ‘œν† νƒ€μž… μŠ€μ½”ν”„μ˜ λΉˆμ„ μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— μš”μ²­ν•œλ‹€.
  2. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” 이 μ‹œμ μ— ν”„λ‘œν† νƒ€μž… λΉˆμ„ μƒμ„±ν•˜κ³ , ν•„μš”ν•œ μ˜μ‘΄κ΄€κ³„λ₯Ό μ£Όμž…ν•œλ‹€.


싱글톀 빈 3

  1. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” μƒμ„±ν•œ ν”„λ‘œν† νƒ€μž… λΉˆμ„ ν΄λΌμ΄μ–ΈνŠΈμ— λ°˜ν™˜ν•œλ‹€.
  2. 이후에 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— 같은 μš”μ²­μ΄ 였면 항상 μƒˆλ‘œμš΄ ν”„λ‘œν† νƒ€μž… λΉˆμ„ μƒμ„±ν•΄μ„œ λ°˜ν™˜ν•œλ‹€.

ν”„λ‘œν†  νƒ€μž…μ˜ νŠΉμ§• 정리

  • μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— μš”μ²­ν•  λ•Œ λ§ˆλ‹€ μƒˆλ‘œ μƒμ„±λœλ‹€.
  • μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆλŠ” ν”„λ‘œν† νƒ€μž… 빈의 생성과 μ˜μ‘΄κ΄€κ³„ μ£Όμž… 그리고 μ΄ˆκΈ°ν™”κΉŒμ§€λ§Œ κ΄€μ—¬ν•œλ‹€.

  • μ’…λ£Œ λ©”μ„œλ“œκ°€ ν˜ΈμΆœλ˜μ§€ μ•ŠλŠ”λ‹€.

  • ν”„λ‘œν† νƒ€μž… λΉˆμ€ ν”„λ‘œν† νƒ€μž… λΉˆμ„ μ‘°νšŒν•œ ν΄λΌμ΄μ–ΈνŠΈκ°€ 관리해야 ν•œλ‹€. μ’…λ£Œ λ©”μ„œλ“œμ— λŒ€ν•œ ν˜ΈμΆœλ„ ν΄λΌμ΄μ–ΈνŠΈκ°€ 직접 ν•΄μ•Όν•œλ‹€.


μ›Ή μŠ€μ½”ν”„

μ›Ή μŠ€μ½”ν”„1

  • μ›Ή μŠ€μ½”ν”„λŠ” μ›Ή ν™˜κ²½μ—μ„œλ§Œ λ™μž‘ν•œλ‹€.
  • μ›Ή μŠ€μ½”ν”„λŠ” μŠ€ν”„λ§μ΄ ν•΄λ‹Ή μŠ€μ½”ν”„μ˜ μ’…λ£Œμ‹œμ κΉŒμ§€ κ΄€λ¦¬ν•œλ‹€.
  • μ’…λ£Œλ©”μ„œλ“œκ°€ ν˜ΈμΆœλœλ‹€.


πŸ‘‰ μ°Έμ‘° : μΈν”„λŸ°μ˜ κΉ€μ˜ν•œλ‹˜κ°•μ˜


🌜 개인 곡뢀 기둝용 λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€. 였λ₯˜λ‚˜ ν‹€λ¦° 뢀뢄이 μžˆμ„ 경우 μ–Έμ œλ“ μ§€ λŒ“κΈ€ ν˜Ήμ€ λ©”μΌλ‘œ μ§€μ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€! πŸ˜„


κ°œμΈλ©”λͺ¨

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ: