일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Eclipse
- 계산기
- 버블정렬
- annotation
- 계산기GUI
- 버블소트
- 오름차순정렬
- Swing
- 자바
- MVC
- 스프링
- 알고리즘
- 자바 계산기
- 자바GUI
- 이클립스
- 어노테이션
- Spring
- GUI
- 숫자정렬
- 배열정렬
- 이클립스 #이클립스단축키 #자바 #자바단축키
- 자바알고리즘
- 자바 #java #이클립스 #eclipse #switch #switch문 #사칙연산 #계산기 #calculator #간단한계산기
- 내림차순정렬
- Java
- Today
- Total
온 코딩
[Spring] DI 설정 - 어노테이션 본문
DI 설정 방법
1. 설정 파일 내의 <bean></bean>으로 설정
2. 설정 파일 내에서 검색하는 방법
1) 조건 <beans ~~~~>의 xmlns 추가 (context)
xmlns:context="http://www.springframework.org/schema/context"
2) 검색 될 컴포넌트(클래스)들은 선언부 상단에 @Component 어노테이션이 있어야함
3) 설정 파일 내에서는 <component-scan>을 이용하여 검색할 수 있다.
4) 만약 검색 범위(패키지)를 설정 할 경우에는 base-package=""속성을 사용하여 설정
<context:component-scan base-package="검색패키지"></context:component-scan>
어노테이션 종류
1. @Autowired
: (스프링 제공) 주로 멤버변수 상단에 사용, 생성자나 메서드에도 사용 가능
- Spring Container는 @AutoWired을 만나는 순간 해당 변수의 데이터 타입을 확인
- Spring Container의 객체 중 해당 타입을 가진 객체를 자동 주입(<bean>으로 선언된거나 @Component된 것 중)
=> 객체가 선언 되어 있어야함~~!
- 객체 타입을 이용하여 의존성 주입 : 동일한 타입의 객체가 여러개일 경우 @Qualifier로 추가지정을 해줘야함
2. @Qualifier
: (Spring 제공)Spring Container내에 동일한 타입을 갖는 객체가 여러 개일 경우 특정 객체를 지정하여 Spring Container가 혼돈하지 않도록 설정 // 특정 객체를 설정
만약 @Qualifier("객체명") 에서 객체명을 지정하지 않으면 NoUniqueBeanDefinitionException오류 발생
3. @Inject - @Autowired랑 기능이 같음
4. @Resource
: 객체 이름을 이용하여 주입
- @Resuorce(name="객체명")과 같이 지정 가능
* @Autowired가 있는 멤버 변수의 타입과 동일한 타입을 갖는 객체가 한 개만 존재할 경우에는 @AutoWired를 사용
여러 개일 경우에는 @Resource가 편리
지정된 객체 이름이 없을 경우 : NoSuchBeanDefinitionException
어노테이션과 XML설정을 병행하여 사용
: xml -> 자바 코드를 수정하지 않아도 되서 유지보수가 편함 BUT 설정이 많아지면 xml 문서 관리가 복잡
: 어노테이션 -> xml 부담이 없고 자바 코드 해석이 편함 BUT 자바코드 수정이 필요함
1. 특정 컴포넌트에 주입되는 객체가 자주 변경 되어야 할 경우에는 <bean>태그 사용
2. 특정 컴포넌트에 주입되는 객체가 고정일 경우에는 @Component(주입되는 클래스)와 @Autowired , @Qualifier("객체명")(주입받는 클래스 내부변수) 를 이용하여 설정
* 단 ~~.jar처럼 라이브러리 형태로 제공되는 클래스는 반드시 설정 파일 내에 <bean>으로 설정
(아파치 톰캣, 스프링 프레임워크가 제공하는 클래스는 반드시 <bean>으로 지정 ex)DispatcherServlet클래스)
프레젠테이션레이어와 비즈니스레이어로 구성 된 시스템 구조

'복습 ARCHIVE > 모델별 프로젝트' 카테고리의 다른 글
[Spring] 오라클 DB 연결 - JdbcDaoSupport 상속 / JdbcTemplate (0) | 2021.06.17 |
---|---|
[Spring] 오라클 DB 연결 - JDBCUtil 사용 (0) | 2021.06.16 |
[Spring] STS - 기본 설정 (0) | 2021.06.15 |
[Spring] 개념정리 및 STS 사용 법 (0) | 2021.06.15 |
[Spring](간단한게시판) 기능 - 글 삭제, 글 수정, 글 검색, 글 상세보기 (0) | 2021.06.11 |