MSA를 할때는 공통으로하는애들은 따로빼주고
모듈별로묶는게 유리하다.
불변이라는게 왜 중요한가
코드를 만들때는 처음만들때만 값을 준다)
불변으로 설계하는 이유는?
Entity클래스는 가능하면 Setter를 만들지 않는다(불변을 유지하려고 해야한다)
대신 필요할때만 바꿀수 있게 한다.
//테스트할때는 이 어노테이션을 붙이면 환경이 끝난다
@SpringBootTest
@ActiveProfiles("dev")
@Log4j2 //로그를 찍을때 사용
public class TodoRepositoryTests {
@Autowired
private TodoRepository todoRepository;
@Test
public void test1(){
log.info(todoRepository.getClass().getName());
}
@Test
public void testInsert(){
IntStream.rangeClosed(1,300).forEach(i->{
Todo todo = Todo.builder().content("내용...."+i).build();
todoRepository.save(todo);
});//loop
}
@Test
public void testSelect(){
//자바 8버전에 optional이라는 아이가 등장한다
Optional<Todo> result = todoRepository.findById(1L);
// log.info(result.get());
// ifPresent 존재한다면이라는 의미로 ifelse를 줄여서 쓰는것
result.ifPresent(todo->log.info(todo));
}
@Test
public void testPaging(){
//페이징을 하고싶으면 무조건 Pageable타입
Pageable pageable = PageRequest.of(0, 10, Sort.by("tno").descending());
//페이지를 findAll에서 가져오고싶으면 Page타입리턴을 받는다
Page<Todo> result = todoRepository.findAll(pageable);
result.getContent().forEach(todo->log.info(todo));
}
@Test
public void testUpdate(){
Optional<Todo> result = todoRepository.findById(300L);
result.ifPresent(todo->{ // 셀렉트가 두번날아간다.. 왜 두번날아갈까..
todo.changeTitle("300번 내용 수정");
todoRepository.save(todo);
});
}
@Test
public void testDelete(){
todoRepository.delete(Todo.builder().tno(300L).build());
}
}
'송파구청 특강 (2021-06 ~ 2021-07) > SpringBoot' 카테고리의 다른 글
강의11 (0) | 2021.06.30 |
---|---|
강의10 (0) | 2021.06.29 |
강의8 (0) | 2021.06.29 |
강의7 (0) | 2021.06.29 |
강의6 (0) | 2021.06.28 |