Notice
Recent Posts
Recent Comments
Link
Tags
- project Package생성
- mybatis-config.xml
- oracle#DB#데이터베이스 이론
- spring#형상관리#정규표현식#target
- Spring MVC#Spring 구조 #Spring MVC Model
- 트랜잭션#@Transacional#트랜잭션 bean#트랜잭션예제
- 동적쿼리if #checkbox검색#checkbox회원검색
- spring#maven#스프링#메이븐
- bean등록Annotation#annotaion#bean등록#DIAnnotaion
- json #ajax #정보조회
- java면접#IT기술면접
- 스프링트랜잭션
- 동적쿼리 #mybatis동적쿼리
- 셀레니움 #selenium#셀레니움설치
- maven#maven환경설정#메이븐환경설정
- framework #프레임워크 #mybatis
- Today
- Total
HongCat 개발 스토리
4. Bean 등록 Annotaion 본문
2019.12.06
Annotation
- 대부분의 프레임워크가 그렇듯 Spring Framework 역시 XML 파일의 설정이 매우 중요
- XML파일의 과도한 설정을 하게 되면 부담스러워 짐
- XML방식 이외에도 Annotation방식을 설정을 지원함
DI Annotation
Bean으로 사용될 클래스에 특별한 Annotation을 부여하고 Spring 컨테이너
가 이 Annotation을 통해 자동으로 bean을 등록하는 방식으로, 빈 스캐닝
(Bean Scanning)을 통한 자동인식 Bean 등록기능이라고 한다.
DI Annotation 방식의 장/단점
장점 | 단점 |
XML 문서 생성과 관리에 따른 수고를 덜어주고 개발 속도를 향상시킬 수 있 다. - 개발자 간 XML 설정 파일의 충돌을 최 소화 할 수 있다. | 어플리케이션에 등록될 bean이 어떤 것 들이 있고, bean들 간의 의존관계가 어 떻게 되는지 한눈에 파악 할 수 없다. |
Bean 등록 Annotation
Annotation | 설명 |
@Component | 객체를 나타내는 일반적인 타임으로<Bean>태그 역할 |
@Controller | Presentation Layer Annotation 으로 View 에서 전달된 웹 요청과 응답을 처리하는 클래스에 사용 |
@Service | Service Layer Annotation 으로 비즈니스 로직을 가진 클래스에 사용 |
@Repository | Persistence Layer Annotation으로 영속성(파일,DB)을 가진 클래스에 사용 |
@Controller, @Service, @Repository는 특정한 객체의 역할에 대한 @Component의 구체화된 형태
Bean 의존관계 주입 Annotation
Annotation | 설명 |
@Autowired | 주로 변수 위에 설정하여 해당 타입 객체를 컨테이너에서 찾 아서 자동으로 주입 |
@Inject | @Autowired와 동일한 기능을 지원 @Autowired는 Spring전용, @Inject는 Java전용 |
@Qualifier | @Autowired와 같이 사용되며, 특정 객체의 이름을 이용하여 의존성을 주입할 때 사용 @Autowired를 하려는 상황에 해당 타입의 객체가 컨테이너에 2개 이상 존재하는 경우 어떤 객체를 주입 할 지 결정할 수 없 어 에러가 발생하는데 이때 해결이 가능 |
@Resource | @Autowired와 @Qualifier의 기능을 결합한 Annotation |
<context:component-scan>태그
- Spring 설정 파일에 애플리케이션에서 사용할 을 등록하지 않고 자동적으로 생성하기 위해 사용하는 태그
- 특정 패키지 내부의 클래스들 중 @Component Annotation이 설정된 클래스들을 자동으로 객체 생성
<context:component-scan>사용예
<context:component-sacn base-package=“kr.or.iei.member”/>
- kr.or.iei.member.controller -> 스캔대상
- kr.or.iei.member.model.vo -> 스캔대상
- kr.or.iei.board.controller -> 스캔대상 아님
- kr.or.iei.board.model.service -> 스캔대상 아님
*web.xml 서버 실행시 기본 설정들을 지정해놓은 파일
'FrameWork' 카테고리의 다른 글
Spring MVC Model 프로젝트 실습 -로그인 (0) | 2019.12.06 |
---|---|
5.Spring MVC Model (0) | 2019.12.06 |
Maven 사용을 위한 이클립스 환경설정 (0) | 2019.12.05 |
3.Spring과 Maven (0) | 2019.12.05 |
동적쿼리 if문을 이용한 회원정보 조회 (3) | 2019.12.04 |
Comments