TODAY TOTAL
[Spring] 2. 의존성 주입 이해하기

스프링 특징 중 하나인 의존성 주입

 

어노테이션을 이용해서 의존성 테스트를 해볼려고 한다!

 

@어노테이션은

 

  1. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공
  2. 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공
  3. 실행시(런타임시)특정 기능을 실행하도록 정보를 제공

스프링에서 많이 나오는거 같다. 골뱅이의 힘은 대단해

 

 

 

 

 

 

org.zerock.sample 패키지 생성 후 Chef 클래스 생성

 

 

@Component

 -> 개발자가 직접 작성한 Class를 Bean에 등록하기 위한 어노테이션

     (컴퓨터는 @Component를 보면 내가 관리해야되는 클래스구나!)

 

 

 

root-context.xml

 패키지를 뒤적거려야하는데 그 과정을 할려면 context:component-scan을 해야한다.

하지만 root-context.xml에 <con을 치면 자동완성이 안나온다.

 

 

 

체크하고 Source로 와서

 

<context:component-scan base-package="org.zerock.sample"></context:component-scan> 치면 

org.zerock.sample에 패키지를 검색한다.

 

 

이렇게 하면 Chef에서 나오는 클래스는 

 

스프링에서 관리를 해준다. 관리를 한다는 표시는 클래스파일 1시방향에 S자라고 뜬다! 

 

 

관리를 한다는 것을 확인할려고 하는데

 

@Data 어노테이션은

 

 -> @Getter @Setter @RequiredargsConstructor @ToString @EqualsAndHashCode을 한꺼번에 설정해준다

 아주 좋은 어노테이션!

 

 

이제는 레스토랑 클래스는 만들자

 

 

레스토랑 안에는 쉐프가 있고 하니 레스토랑은 틀! 껍데기!

 

 

Chef라는 객체를 연결 해줄래요? 그럼 스프링에서 자동으로 넣어 준다. 그게 의존성 주입!

 

 

 

@RunWith -> Junit 내장실행기로 대신 테스트를 실행 모든 프레임워크의 기능을 제공

@ContextConfiguration -> 자동으로 만들어줄 애플리케이션 Context의 설정파일 위치를 지정

@Autowired -> 변수 타입과 일치하는 빈을 찾는다. 타입이 일치하는 빈이 있으면

                      인스턴스 변수에 주입해준다.

'Back-End > Spring' 카테고리의 다른 글

[Spring] 5. 프로젝트의 구성  (0) 2021.07.18
[Spring] 4. MVC구조 중 Controller  (0) 2021.07.17
[Spring] 3. MVC구조 기본  (0) 2021.07.16
[Spring] 1. sts3 설치 및 설정  (0) 2021.07.08
[Spring] 0. 첫걸음에 대한 준비  (1) 2021.07.08
  Comments,     Trackbacks