new 객체화
: 프로그램의 수행 순서를 제어하거나, 문장들의 수행 횟수를 조정하는 문장 new 한다는 것은 객체화 의미
▶ 스프링 프레임워크를 이용하여 IoC(제어의 역행)이 되었기 때문에
직접 new 하지 않고 프레임워크를 활용하여 객체화
✅ 인스턴스화
- XML 설정 파일을 사용하여 빈을 정의하고 빈을 생성하는 것은 그 자체로 인스턴스화
⛔ .xml <bean>으로 사용 시 단점
- 설정이 과다해짐
- 가독성 떨어짐
- 구조파악이 어려움
ex)
.xml <bean>을 사용하여 객체 생성
applicationContext.xml
// applicationContext.xml
<bean class="test.GalaxyPhone" id="gp" />
▼
📍 .xml ▶ .java @어노테이션 사용하여 단점 해결!
@ 어노테이션 사용 시 장점
- JAVA의 구조파악에 도움을 줌
- .xml이 줄어듦 -> 가독성 좋아짐
- context 네임스페이스를 추가해야 @을 사용할 수 있음
✅ @ 어노테이션 방식으로 객체화 방법
네임스페이스
applicationContext.xml에서
@을 사용하기 위해서는 먼저 Namespaces 로 들어가서 context 네임스페이스를 추가


✅ @Component / @Autowired
- 스프링 프레임워크에서 의존성 주입(Dependency Injection)을 위해 사용되는 주요한 어노테이션
| @Component | @Autowired |
| 스프링에서 빈(Bean)으로 등록할 클래스를 지정할 때 사용 |
스프링 컨테이너가 해당 타입의 빈을 자동으로 찾아 주입
|
ex)
@Component 어노테이션을 사용한 빈 등록
// java
import org.springframework.stereotype.Component;
@Component
public class Engine {
public void start() {
System.out.println("Engine started!");
}
}
@Autowired 어노테이션을 사용한 의존성 주입
// java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Car {
private Engine engine;
@Autowired
public Car(Engine engine) {
this.engine = engine;
}
public void drive() {
engine.start();
System.out.println("Car is driving!");
}
}
// java
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
// 스프링 컨테이너 초기화
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
// Car 빈 가져오기
Car car = context.getBean(Car.class);
// 자동차 주행
car.drive();
// 컨테이너 종료
context.close();
}
}
❓
@Autowired는 메모리에 있는 객체의 자료형을 보고 의존 주입을 해주게 되는데,
만약 같은 자료형의 객체가 2개 이상이라면?
⚠️BeanCreationException 오류 발생!


- 빈의 이름을 명시해서 오류 해결
@Component("빈명") - @Autowired 어노테이션과 함께 @Qualifier 사용하여 오류 해결
@Autowired @Qualifier("빈명")
'Framework > SPRING' 카테고리의 다른 글
| [SPRING 이론] spring / spring boot 특징 요약 (0) | 2025.01.16 |
|---|---|
| [SPRING 이론] (0) | 2024.06.18 |
| [SPRING 이론] [03] 의존성(의존관계) / 의존주입 (0) | 2024.03.04 |
| [SPRING 이론] [02] 컨테이너 (0) | 2024.02.29 |
| [SPRING 이론] [01] 프레임워크 (0) | 2024.02.28 |