본문 바로가기

Spring

(58)
CRUD Logic 구현 1 . create Header로 들어온 것의 body를 해당 Entity의 Request로 받음. 그리고 Entity 객체를 생성해서 Request의 데이터를 뽑아내서 채움. 그리고 그 Entity를 Repository를 이용하여 저장. @Override public Header create(Header request) { //1. request data UserApiRequest userApiRequest = request.getData(); //2. User 생성 User user = User.builder() .account(userApiRequest.getAccount()) .password(userApiRequest.getPassword()) .status(UserStatus.REGISTERE..
@Slf4j @Slf4j Log.info("{}",request);를 통해 해당 메소드 로그를 찍어줄 수 있음 Log.info("{}", "{}",request,"ABC") 하면 request,ABC 가 찍힘
@PathVariable @PathVariable @Override @GetMapping("{id}") // /api/user/{id} public Header read(@PathVariable Long id) { return null; } 이렇게 GetMapping 에 지정된 Path에서 매개변수와 같은 이름이 존재 한다면 변수로 사용 가능. 따라서 기존의 GetMapping은 @GetMapping("/api/account") public Header read(@RequestParam Long id) { } 이런 식으로 작성 후에 url에서 api/account?id=1000 이런식으로 사용 했지만 PathVariable 사용 시 /api/{1000}하면 매개변수 id에 1000이 들어옴
서버와 Java 연동 Case변경 java에서는 camel case를 사용하는데 서버에서 해당 변수를 snake로 바꿔주기 위해서 application properties spring.jackson.property-naming-strategy =SNAKE_CASE 추가 //직접 치는것을 추천
서비스 구현 정리. 1) 어떤 Request에 대해서 Response를 받는 구조를 만들어야 함. 따라서 어떤 User정보를 받아서 그것에 대한 create Request를 한다고 하면 Create메소드에 Mapping되어 있는 주소에 Post로 RequestBody로 싸서 보내면 생성해주고 Response를 내려주는 기능. Request 와 Response 클래스를 따로따로 관리하는 이유는 예를 들어 비밀번호 1234에 대한 정보를 요청 할 때 Request는 비밀번호 그대로에 대해 요청 하지만 Response로 받을 때는 어떠한 처리가 반영된다던지 하는 식의 차이가 존재 하므로 따로따로 관리한다. 편의성을 돕기 위해 CRUD에 대한 인터페이스를 만들어 놓음. public interface CrudInterfase { H..
@Builder, @Accessors 모든 생성자로 Entity를 채워 줄 시에 모든 데이터 타입 순서를 맞춰야 하고 빠지는 것도 없어야 하고, 불편한 사항이 생김. ->@Builder 어노테이션 추가. User user = User.builder().account().password().build(); 하면 채워준 유저만 생성됨. @Accessors(chain = true) 하면 이미 생성된 객체에서 체이닝 형태로 사용 가능 create에서 만들어진 user로 update에서 값을 바꿔 준다 하면 user.setEmai() user.setAccount() .... 하지만 chain = true 로 바꿔주면 user.setEmail().setAccount()....이런식으로 연쇄적로 사용 가능. Accessor로 생성도 가능 builder는..
@Configuration , @Create~ , @LastModified~ 반복해서 나타나는 Entity 변수 중 created 나 update에 관한 변수를 자동 지정 하는 방법은 1) 우선 configuration객체를 만들어야 함. Jpa에 대해 감시 설정 하는 클래스를 생성하고 @Configuration 어노테이션과 @EnableJpaAuditing 를 붙임. @Configuration @EnableJpaAuditing //Jpa에 대해 감사 설정 public class JpaConfig { } 2) Entity의 createdBy에는 @CreatedBy updatedBy에는 @LastModifiedBy 를 어노테이션 지정한 뒤 @EntityListeners(AuditingEntityListener.class) 어노테이션 추가 @EntityListeners(Auditin..
연관 관계 설정. 1) 각 엔티티에 해당하는 테이블 만들기. 2) Workbench 이용해서 foreign key 지정 3) @OneToMany라면 Many에 해당하는 쪽에서 One의 키를 가지고 있으므로 One의 객체들을 먼저 다 채워 주고, Many에서 그 객체를 찾아서 set 해준다. 4) read하는 방법은 가령 User로 부터 Category의 정보를 얻고자 한다면 User Entity -> OrderGroup -> OrderDetail -> Item -> Partner -> Category 이런식으로 타고 갈 수 있음. 한 명의 User가 여러개의 장바구니를 가지는데 장바구니 하나 당 여러개의 주문 내역이 있고 주문 내역 하나에는 하나의 아이템이 존재 ( 1 : N - N : 1) 이므로, 그 하나의 아이템에는..