Spring
[복습]
스프링 프레임워크는 IoC(Inversion of Control)와 AOP(Aspect-Oriented Programming)를
지원하는 경량의 프레임워크
개발자가 객체를 직접 생성하고 관리하는 대신, 스프링 컨테이너가 이 모든 과정을 자동으로 처리함
설정 파일
pom.xml - 라이브러리 설정 파일로, 의존성을 관리
applicationContext.xml: - 스프링 컨테이너 설정 파일로, 애플리케이션의 객체를 정의하고 관리
web.xml -서블릿 컨테이너(예: 톰캣) 설정 파일로, 서블릿의 매핑 및 초기 설정
스프링 컨테이너
정의 - 개발자가 직접 객체를 생성(new)하고 관리하는 대신, 스프링 컨테이너가 대신 수행
예시 - 서블릿 컨테이너(톰캣)는 new FC();와 fc.doGet();, fc.doPost();를 처리
IoC와 DI
IoC (제어의 역행)
- 스프링 컨테이너가 객체의 생성과 생명주기를 관리
DI (의존 주입)
- 의존성: 어떤 메서드를 수행할 때 필요한 객체를 외부에서 주입받는 방식
ex) Controller가 DAO에 의존성을 가짐 - 주입 방식
- Setter 주입: <property> 태그를 사용하여 setter 메서드로 의존성을 주입
- 생성자 주입: <constructor> 태그를 사용하여 생성자를 통해 의존성을 주입
- 어노테이션 주입: @Autowired를 사용하여 타입에 맞는 객체를 자동으로 주입
어노테이션
@Component: 클래스를 스프링의 Bean으로 등록
== IPhone apple = new IPhone();
== <bean class="IPhone" id="apple" >
컴포넌트 == Bean == 모듈 == 패키지 == 위젯
== 리팩토링 결과물
== 함수화 == 메서드화
@Autowired: 해당 타입의 Bean을 자동으로 주입
이 경우, 멤버 변수마다 하나의 어노테이션을 달아야 함
@Qualifier: DI 모호성 문제를 해결하기 위해 특정 Bean의 이름을 지정하여 주입
컴포넌트 == new
의존성 주입 == @Autowired
객체명 참고 == @Qualifier
XML 보다 어노테이션
XML 설정은 복잡해지기 쉽고, 많은 설정이 필요해 불편함이 발생할 수 있음
@Component와 @Autowired와 같은 어노테이션을 사용하는 방식이 더 간편하고 직관적
스프링 프레임워크는 IoC와 DI를 통해 개발자의 부담을 덜어주며, 효율적인 객체 관리와 의존성 관리를 가능하게 함
'javaboiii의 Spring' 카테고리의 다른 글
Spring - ViewResolver와 요청 처리 흐름 (feat.@controller) (0) | 2024.10.08 |
---|---|
Spring - SpringFramework구조의 흐름 (1) | 2024.10.07 |
Spring - 의존성 주입 (1) | 2024.10.02 |
Spring - 컨테이너 (0) | 2024.10.02 |
Spring - Spring Framwork 구조 (1) | 2024.10.02 |