05. Component

Bean을 λ”°λ‘œ λ“±λ‘ν•˜μ§€ μ•Šμ•„λ„ @Component μ–΄λ…Έν…Œμ΄μ…˜μ„ 뢙이면 μžλ™μœΌλ‘œ λ“±λ‘λœλ‹€.

Β  πŸ₯‘ μ‹€μŠ΅μ„ μœ„ν•œ 아보카도 클래슀 πŸ₯‘

Component μ–΄λ…Έν…Œμ΄μ…˜μ€ ν΄λž˜μŠ€μ— 뢙인닀.

1️⃣ Β XML νŒŒμΌμ—μ„œμ˜ μ‚¬μš©λ²•

  1. context:component-scan νƒœκ·Έλ‘œ base-package μ•ˆμ— μž…λ ₯ν•œ νŒ¨ν‚€μ§€λ₯Ό μŠ€μΊ”ν•˜μ—¬ μ–΄λ…Έν…Œμ΄μ…˜μ„ λΆ„μ„ν•œλ‹€.

  2. μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” ν΄λž˜μŠ€λ“€μ€ 직접 Bean 을 등둝해야 ν•œλ‹€.

  3. μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•œλ‹€ ν•˜λ”λΌλ„ xml νŒŒμΌμ—μ„œ Bean 을 등둝할 수 μžˆλ‹€.

<context:component-scan base-package="beans" />

2️⃣ Β JAVA νŒŒμΌμ—μ„œμ˜ μ‚¬μš©λ²•

  1. Configuration νŒŒμΌμ—μ„œ @ComponentScan μ–΄λ…Έν…Œμ΄μ…˜κ³Ό νŒ¨ν‚€μ§€λͺ…을 μ μ–΄λ„£μœΌλ©΄ λ™μž‘ν•œλ‹€.

  2. basePackages 에 적힌 νŒ¨ν‚€μ§€λͺ…을 μŠ€μΊ”ν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ™μž‘μ‹œν‚¨λ‹€.

@Configuration
@ComponentScan(basePackages = "beans")
public class BeanClass {
    ...
}
  1. @Component μ–΄λ…Έν…Œμ΄μ…˜μ„ 적어넣은 클래슀만 λ³„λ„μ˜ Bean 등둝 없이 μ‚¬μš© κ°€λŠ₯ν•˜λ‹€.
@Component
@Lazy
public class Avocado {
	...
}