728x90
빈과 빈 사이의 의존관계를 처리하는 방식으로 ① XML 설정, ② 어노테이션 설정, ③ JAVA 설정 방식을 이용할 수 있다.
[Spring] 의존성 주입 (DI, Dependency Injection) - ① XML 설정
의존성 주입(DI, Dependency Injection) 의존성은 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것을 의미한다. 의존성과 주입을 결합해서 생각하면 '객체가 필요한 특정 객체를 외부에서 밀어
gangintheremark.tistory.com
② 어노테이션(annotation) 기반 설정
<context:annotation-config/>
설정 필수Namespaces
에서context
체크 필수
@Autowired
@Autowired
는 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해주라는 표시
- 주입받는 대상을 타입
type
으로 찾아서 자동으로 주입 - 주입해야 되는 빈의 타입은 반드시 존재해야 한다.
- 동일한 타입의 빈이 여러 개 있는 경우 예외 발생
CoC (Convention over Configuration)
@Autowired
Cat cat;
Bean Configuration xml file
에 변수명 cat
과 일치하는 id를 가진 빈이 주입
@Qualifier
@Autowired
와 같이 사용- 동일한 타입의 빈이 여러 개 있는 경우 예외 발생 ➜ 명시적으로 설정 가능
@Autowired
@Qualifier(value="cat")
Cat cat;
@Resourse
- 빈의 이름
name
으로 찾아서 자동으로 주입
@Resource(name="cat1")
Cat cat;
// id="cat1"인 빈 주입
@Value
- 빈의 변수에 특정 값을 주입
- 주로 외부의
리소스
나환경정보
값을 가져와서 설정하는 작업이 일반적
# application.properties
cat.name = "애용"
cat.age = 3
<!-- Bean Configuration xml file -->
<context:annotation-config />
<context:property-placeholder location="classpath:com/config/application.properties"
file-encoding="utf-8"/>
<bean id="cat" class="com.dto.Cat">
// Cat.java
@Value("${cat.name}")
String name;
@Value("${cat.age}")
int age;
728x90
'WebServer > Spring' 카테고리의 다른 글
[Spring] BeanFactoryPostProcessor를 이용한 설정 메타데이터 정의 (0) | 2023.09.13 |
---|---|
[Spring] 빈 생명주기(LifeCycle) 콜백 메서드 (0) | 2023.09.12 |
[Spring] 컬렉션 의존성 주입 (0) | 2023.09.04 |
[Spring] 의존성 주입 (DI, Dependency Injection) - ① XML 설정 (1) | 2023.09.02 |
[Spring] Spring 개요 (0) | 2023.08.30 |