fridge-web 프로젝트에서 api 서버와 통신할때 URL을 매번 중복해서 입력하는 부분을 제거하기 위해 RestTemplate 빈 등록메서드를 수정한다.
builder에 rootUri 메서드를 호출해서 api 서버 url을 미리 설정하고 build해서 RestTemplate 객체를 반환하면 RestTemplate을 사용하는 부분에서는 root 다음 경로만 넘겨주면 된다.
WebFoodController 클래스의 restTemplate 사용부분을 전부 수정한다.
다른 메서드들도 동일하게 수정한다.
Food 클래스에서도 이제 더이상 사용하지 않는 Cloneable과 hashCode, equals 메서드를 정리한다.
Guava 의존라이브러리도 다른곳에서는 사용하지 않으므로 정리한다.
식품에 대한 최소한의 기능은 구현하였다. 이번에는 냉장고 라는 개념을 모델링한다. 식품들이 들어가고 나가는 곳은 냉장고이기 때문에 냉장고라는 모델을 구현해서 냉장고별로 식품을 관리할 수 있도록 한다.
일단은, 패키지가 com.poseidon.fridge로 되어있기 때문에 모델별로 구분이 가지 않기 때문에 패키지부터 정리한다. food관련 클래스들은 com.poseidon.food 패키지 아래에 위치시킨다. test 패키지도 패키지를 구분해서 리팩토링하면 좀더 구분하기 쉬워진다.
FridgeApplication.java 파일은 com.poseidon 패키지로 올렸다.
테스트 클래스 FridgeTests 클래스를 하나 새로만들고 간단한 테스트 메서드를 추가한다.
Fridge 는 냉장고 모델을 테스트하는 클래스이며, 별명(nickname)을 멤버변수로 가진다.
newFridge 메서드에서는 Fridge 클래스를 하나 만든다. Fridge 생성자에 nickname을 파라미터로 전달하면 Fridge 멤버 변수 nickname에 할당한다. nickname 접근자 메서드는 주어진 nickname과 동일함을 검증한다.
다음은 Fridge 클래스 소스코드다.
전체 테스트를 수행해서 이상이 없는지 확인한다.
이전글: 냉장고 가계부 프로젝트 13
다음글: 냉장고 가계부 프로젝트 15
@Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.rootUri("http://localhost:8081").build(); }
builder에 rootUri 메서드를 호출해서 api 서버 url을 미리 설정하고 build해서 RestTemplate 객체를 반환하면 RestTemplate을 사용하는 부분에서는 root 다음 경로만 넘겨주면 된다.
WebFoodController 클래스의 restTemplate 사용부분을 전부 수정한다.
@GetMapping public String foods(Model model) { ResponseEntity<Resources<FoodCommand>> response = restTemplate.exchange("/foods", HttpMethod.GET, null, new ParameterizedTypeReference<Resources<FoodCommand>>() {}, Collections.emptyMap()); ....
다른 메서드들도 동일하게 수정한다.
Food 클래스에서도 이제 더이상 사용하지 않는 Cloneable과 hashCode, equals 메서드를 정리한다.
Guava 의존라이브러리도 다른곳에서는 사용하지 않으므로 정리한다.
식품에 대한 최소한의 기능은 구현하였다. 이번에는 냉장고 라는 개념을 모델링한다. 식품들이 들어가고 나가는 곳은 냉장고이기 때문에 냉장고라는 모델을 구현해서 냉장고별로 식품을 관리할 수 있도록 한다.
일단은, 패키지가 com.poseidon.fridge로 되어있기 때문에 모델별로 구분이 가지 않기 때문에 패키지부터 정리한다. food관련 클래스들은 com.poseidon.food 패키지 아래에 위치시킨다. test 패키지도 패키지를 구분해서 리팩토링하면 좀더 구분하기 쉬워진다.
FridgeApplication.java 파일은 com.poseidon 패키지로 올렸다.
테스트 클래스 FridgeTests 클래스를 하나 새로만들고 간단한 테스트 메서드를 추가한다.
Fridge 는 냉장고 모델을 테스트하는 클래스이며, 별명(nickname)을 멤버변수로 가진다.
public class FridgeTests { @Test public void newFridge() { String nickname = "myFridge"; Fridge myFridge = new Fridge(nickname); assertThat(myFridge).isNotNull(); assertThat(myFridge.getNickname()).isEqualTo(nickname); assertThat(myFridge.getNickname()).isNotEqualTo("Blah blah"); } }
newFridge 메서드에서는 Fridge 클래스를 하나 만든다. Fridge 생성자에 nickname을 파라미터로 전달하면 Fridge 멤버 변수 nickname에 할당한다. nickname 접근자 메서드는 주어진 nickname과 동일함을 검증한다.
다음은 Fridge 클래스 소스코드다.
public class Fridge { private String nickname; public Fridge(String nickname) { this.nickname = nickname; } public String getNickname() { return nickname; } }
전체 테스트를 수행해서 이상이 없는지 확인한다.
이전글: 냉장고 가계부 프로젝트 13
다음글: 냉장고 가계부 프로젝트 15