티스토리 뷰

반응형

09. 09. 가게 상세 - 2 -10. 10. 의존성 주입

 

repository 만들음

package kr.co.fastcampus.eatgo.domain;

import org.springframework.data.repository.CrudRepository;

import java.util.List;

public interface ReservationRepository
        extends CrudRepository<Reservation, Long> {

    List<Reservation> findAllByRestaurantId(Long restaurantId);

    Reservation save(Reservation reservation);
}

 

 

Dependency Injection : 스프링 가장 큰 특징( 객체  강한 연결을 유연하게 가능)

dependency: 의존성 - 의존관계 

( 둘 이상의 객체의 서로 협력  예) A는 B 에 의존, A는 B를 사용 , B의 변화에 A가 영향 받음)

-> controller 는 repository 에 의존

 

Spring IoC Container  : 객체를 만들어주고 연결하는 걸 스프링에서 직접 관리 함.

@Component, @Autowired

@Component: repository 를 스프링이 직접 관리하게 해준다.

@RestController 또한 @Component의 일종이다. 스프링이 직접 관리하게 해준다.

 @Autowired: 객체를 알아서 생성해서 넣어준다.

@Autowired
 private ReservationService reservationService;
 
 // private ReservationService reservationService  =new  ReservationService();와 완벽하게 똑같다. 

test 부분에서

@WebMvcTest(ReservationController.class)// 이것을 사용하면 외부 저장소 를 연동을 못함
public class ReservationControllerTests {
//-> controller 에 직접 의존성을 주입해줘야함.
//-> @SpyBean(ReservationRepository.class) -> controller 에 원하는 객체 주입 가능
//	privatee ReservationRepository reservationRepository;// 사용할 객체  다양하게 변경 가능
	
    @Autowired
    private MockMvc mvc;

    @MockBean
    private ReservationService reservationService;

    @Test
    public void list() throws Exception {
        String token = "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIwMjAsIm5hbWUiOiJPd25lciIsInJlc3RhdXJhbnRJZCI6MTAwNH0.a5n4PWJ2-3yVyMaLGG0HSPXtH_mgpOvofpQ1OFkgDOQ";

        mvc.perform(get("/reservations")
                .header("Authorization", "Bearer " + token))
                .andExpect(status().isOk());

        verify(reservationService).getReservations(1004L);
    }

}

 

 

repository 인터페이스로 변경함.

클래스의 내용물 인터페이스로 변경

 

 

 

 

 

 

 

 

 

 

 

바 인강이 듣고 싶다면 =>https://bit.ly/3ilMbIO

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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 31
글 보관함