src > main > java 안에 service package 생성

[MemoService.java 클래스]
반환타입 : Long | 메소드 : update | 재료 : id, Dto
멤버변수 선언 : private MemoRepository memoRepository
(꼭 필요한 변수라고 알려주기 : private final MemoRepository memoRepository)
* annotation :
@RequiredArgsConstructor 추가 (생성자, final로 생성된 친구 있으면 생성할때 같이 무조건 넣어준다~)
@Service (서비스라는것도 스프링한테 알려주기)
@Transactional (DB에 진짜 반영돼야한다고 스프링한테 알려주기)
위 변수를 가져와서 id를 기준으로 find
memoRepository.findById(id) → 근데 이게 없으면 어떻게 할 지 spring한테 알려줘야 함.
orElseThrow ( ( ) -> new IllegalArgumentException or NullPointerException("예외메세지") )
@RequiredArgsConstructor
@Service
public class MemoService {
private final MemoRepository memoRepository;
@Transactional
public Long update(Long id, MemoRequestDto requestDto) {
Memo memo = memoRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("아이디가 존재하지 않습니다.")
);
memo.update(requestDto);
return memo.getId();
}
}
requestDto를 들고 update. 어떤 친구가 update되었는지 id를 돌려줌 (return memo.getId();)
[Memo.java 클래스] - update 메소드 추가
public void update(MemoRequestDto requestDto) {
this.username = requestDto.getUsername();
this.contents = requestDto.getContents();
}
메소드 public 반환타입은 void (없음)
update (전달받는 input : MempRequestDto의 requestDto)
username = requestDto의 getUsername
'study > spring | java' 카테고리의 다른 글
[Timeline Service] 타임라인 서비스 만들기 4. 메모 작성 (writePost) (0) | 2021.06.06 |
---|---|
[Timeline Service] 타임라인 서비스 만들기 3. Controller (0) | 2021.06.05 |
[Timeline Service] 타임라인 서비스 만들기 1. Repository (0) | 2021.06.05 |
[Spring Web Project] Security [2] - MySQL, BcryptPasswordEncoder (0) | 2021.03.01 |
[Spring Web Project] Security [1] - 회원가입 시 비밀번호 암호화 작업 (0) | 2021.02.27 |