•
<?>: 자바 generic
◦
메소드 매개변수의 자료형에 사용되는 제너릭
◦
어떤 자료형의 객체도 매개변수로 받겠다는 의미
•
redirect 안될 때
◦
restcontroller 어노테이션 때문에 안되는 거임
◦
다른거 안 건든채 고치려면 리턴타입을 ResponseEntity로 변경하면 됨
@GetMapping("/members/test")
public String test(){
return "redirect 성공";
}
@GetMapping("/redirect")
public ResponseEntity<?> redirect() {
HttpHeaders headers = new HttpHeaders();
headers.setLocation(URI.create("/members/test"));
return new ResponseEntity<>(headers, HttpStatus.MOVED_PERMANENTLY);
}
Plain Text
복사
•
body 없는 responseentity
◦
200만 보내기
public ResponseEntity findId(@RequestBody MemberFindIdRequestDto memberFindIdRequestDto) {
return new ResponseEntity(HttpStatus.OK);
}
Plain Text
복사
•
redirect시 parameter값 전달
String email = "choo000407@naver.com";
string email = memberService.findId(memberFindIdRequestDto);
redirectAttributes.addAttribute("email", email);
Plain Text
복사
•
extends JpaRepository
◦
컨트롤러 오케이
◦
서비스에서 안돌아가서 jpashop코드 가져옴.
◦
근데 레포지토리의 위 키워드가 달라서 얘도 안됨. 위에거 검색해보기
•
스프링부트 유효성 검사 → 빈 값 넣엇을 때 에러 처리
•
포스트맨 이미지 업로드 에러
◦
경로: C:\Users\PC\Postman Agent
•
이미지 업로드
1. 원본이미지를 S3에 저장
-> 저장시, 이미지 파일 이름 중복 예방
1) UUID를 랜덤생성
2) 년/월/일 폴더를 만들어 저장
2. 메인이미지라면 섬네일을 만들어서 S3에 저장
3. DB에 이미지 정보를 저장(uuid나 파일 위치, 이름, 이미지 타입 등등,,)
•
파일 확장자 얻기
File file = new File("/home/js/test/myfile/file1.txt");
String fileName = file.getName();
String ext = fileName.substring(fileName.lastIndexOf(".") + 1);
Plain Text
복사
•
multipart/formdata dto
Spring이 버전업 됨에 따라, DTO에 Multipart 타입의 필드가 있으면, form 데이터는 특별한 어노테이션 없이
바로 dto로 받아도 된다고 합니다.
•
쿼리스트링, param
•
lazy 500 error
•
Column(unique = true) 제약조건에 대한 핸들링 → 이거 써서 실제사용한거 문제 해결함!
•
querydsl select update delete
// @Override
// public JPAQuery<Integer> findKeywordIdByMemberId(Long memberId){
// JPAQuery<Integer> results = queryFactory.select(memberKeyword.keywordId)
// .from(memberKeyword)
// .where(memberKeyword.member.id.eq(memberId));
// return results;
// }
Plain Text
복사
•
웹소켓 채팅기능 poo님이 주신 것!
•
배포 자동화
•
query dsl repositor 김영한 강의 출처 → 제일 도움 많이 됨
•
querydsl fetch
1.
fetch() : 리스트로 결과를 반환하는 방법입니다. (만약에 데이터가 없으면 빈 리스트를 반환해줍니다.)
2.
fetchOne() : 단건을 조회할 때 사용하는 방법인데요. (결과가 없을때는 null 을 반환하고 결과가 둘 이상일 경우에는 NonUniqueResultException을 던집니다.)
3.
fetchFirst() : 처음의 한건을 쿼리해서 가져오고 싶을때 사용하고요.
4.
fetchResults() : 해당 내용은 페이징을 위해 사용될 수 있습니다. 페이징을 위해서 total contents를 가져오고요.
5.
fetchCount() : count 쿼리를 날릴 수 있다.
•
백기선 알림 → 이거 보고 하깅!!!!!!!!
•
더보기 방식 이게 찐이엇음 → 기억보단 기록을 → 이거 참조햇음!
•
Poo님이 올려주신 웹소켓 개발 시 이용하신 자료들
•
채팅 레포 참고
•
inner join
•
bean validation 에러 처리
◦
이게 자세한 듯?
•
rest controller에서 veiw 렌더링