diff --git a/src/main/java/com/rest/api/advice/ExceptionAdvice.java b/src/main/java/com/rest/api/advice/ExceptionAdvice.java index 0ad8d7a..05f7239 100644 --- a/src/main/java/com/rest/api/advice/ExceptionAdvice.java +++ b/src/main/java/com/rest/api/advice/ExceptionAdvice.java @@ -24,19 +24,22 @@ public class ExceptionAdvice { @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) protected CommonResult defaultException(HttpServletRequest request, Exception e) { + // 예외 처리의 메시지를 MessageSource에서 가져오도록 수정 return responseService.getFailResult(Integer.valueOf(getMessage("unKnown.code")), getMessage("unKnown.msg")); } @ExceptionHandler(CUserNotFoundException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) protected CommonResult userNotFoundException(HttpServletRequest request, CUserNotFoundException e) { + // 예외 처리의 메시지를 MessageSource에서 가져오도록 수정 return responseService.getFailResult(Integer.valueOf(getMessage("userNotFound.code")), getMessage("userNotFound.msg")); } + // code정보에 해당하는 메시지를 조회합니다. private String getMessage(String code) { return getMessage(code, null); } - + // code정보, 추가 argument로 현재 locale에 맞는 메시지를 조회합니다. private String getMessage(String code, Object[] args) { return messageSource.getMessage(code, args, LocaleContextHolder.getLocale()); } diff --git a/src/main/java/com/rest/api/config/MessageConfiguration.java b/src/main/java/com/rest/api/config/MessageConfiguration.java index 4823af2..ce36020 100644 --- a/src/main/java/com/rest/api/config/MessageConfiguration.java +++ b/src/main/java/com/rest/api/config/MessageConfiguration.java @@ -28,7 +28,7 @@ public LocaleResolver localeResolver() { } @Bean // 지역설정을 변경하는 인터셉터. 요청시 파라미터에 lang 정보를 지정하면 언어가 변경됨. - private LocaleChangeInterceptor localeChangeInterceptor() { + public LocaleChangeInterceptor localeChangeInterceptor() { LocaleChangeInterceptor lci = new LocaleChangeInterceptor(); lci.setParamName("lang"); return lci; diff --git a/src/main/java/com/rest/api/controller/v1/UserController.java b/src/main/java/com/rest/api/controller/v1/UserController.java index df649b5..9a6cfb3 100644 --- a/src/main/java/com/rest/api/controller/v1/UserController.java +++ b/src/main/java/com/rest/api/controller/v1/UserController.java @@ -30,42 +30,45 @@ public ListResult findAllUser() { } @ApiOperation(value = "회원 단건 조회", notes = "userId로 회원을 조회한다") - @GetMapping(value = "/user/{userId}") - public SingleResult findUserById(@ApiParam(value = "회원ID", required = true) @PathVariable int userId, - @ApiParam(value = "언어", defaultValue = "ko") @RequestParam String lang) { - // 결과데이터가 단일건인경우 getSingleResult를 이용해서 결과를 출력한다. - return responseService.getSingleResult(userJpaRepo.findById(userId).orElseThrow(CUserNotFoundException::new)); + @GetMapping(value = "/user/{msrl}") + public SingleResult findUserById(@ApiParam(value = "회원ID", required = true) @PathVariable long msrl, + @ApiParam(value = "언어", defaultValue = "ko") @RequestParam String lang) { + // 결과데이터가 단일건인경우 getBasicResult를 이용해서 결과를 출력한다. + return responseService.getSingleResult(userJpaRepo.findById(msrl).orElseThrow(CUserNotFoundException::new)); } @ApiOperation(value = "회원 입력", notes = "회원을 입력한다") @PostMapping(value = "/user") - public SingleResult save(@ApiParam(value = "회원이름", required = true) @RequestParam String name, - @ApiParam(value = "회원이메일", required = true) @RequestParam String email) { - User user = new User(); - user.setName(name); - user.setEmail(email); + public SingleResult save(@ApiParam(value = "회원아이디", required = true) @RequestParam String uid, + @ApiParam(value = "회원이름", required = true) @RequestParam String name) { + User user = User.builder() + .uid(uid) + .name(name) + .build(); return responseService.getSingleResult(userJpaRepo.save(user)); } @ApiOperation(value = "회원 수정", notes = "회원정보를 수정한다") @PutMapping(value = "/user") public SingleResult modify( - @ApiParam(value = "회원ID", required = true) @RequestParam int userId, - @ApiParam(value = "회원이름", required = true) @RequestParam String name, - @ApiParam(value = "회원이메일", required = true) @RequestParam String email) { - User user = new User(); - user.setId(userId); - user.setName(name); - user.setEmail(email); + @ApiParam(value = "회원번호", required = true) @RequestParam long msrl, + @ApiParam(value = "회원아이디", required = true) @RequestParam String uid, + @ApiParam(value = "회원이름", required = true) @RequestParam String name) { + User user = User.builder() + .msrl(msrl) + .uid(uid) + .name(name) + .build(); return responseService.getSingleResult(userJpaRepo.save(user)); } @ApiOperation(value = "회원 삭제", notes = "userId로 회원정보를 삭제한다") - @DeleteMapping(value = "/user/{userId}") + @DeleteMapping(value = "/user/{msrl}") public CommonResult delete( - @ApiParam(value = "회원ID", required = true) @PathVariable int userId) { - userJpaRepo.deleteById(userId); + @ApiParam(value = "회원번호", required = true) @PathVariable long msrl) { + userJpaRepo.deleteById(msrl); // 성공 결과 정보만 필요한경우 getSuccessResult()를 이용하여 결과를 출력한다. return responseService.getSuccessResult(); } } + diff --git a/src/main/java/com/rest/api/entity/User.java b/src/main/java/com/rest/api/entity/User.java index 6d31eb2..956a647 100644 --- a/src/main/java/com/rest/api/entity/User.java +++ b/src/main/java/com/rest/api/entity/User.java @@ -1,21 +1,22 @@ package com.rest.api.entity; -import lombok.Getter; -import lombok.Setter; +import lombok.*; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; -@Entity -@Getter -@Setter -//@Table(name = "user") +@Builder // builder를 사용할수 있게 합니다. +@Entity // jpa entity임을 알립니다. +@Getter // user 필드값의 getter를 자동으로 생성합니다. +@NoArgsConstructor // 인자없는 생성자를 자동으로 생성합니다. +@AllArgsConstructor // 인자를 모두 갖춘 생성자를 자동으로 생성합니다. +@Table(name = "user") // 'user' 테이블과 매핑됨을 명시 public class User { - @Id // pk + @Id // primaryKey임을 알립니다. @GeneratedValue(strategy = GenerationType.IDENTITY) - private int id; + // pk생성전략을 DB에 위임한다는 의미입니다. mysql로 보면 pk 필드를 auto_increment로 설정해 놓은 경우로 보면 됩니다. + private long msrl; + @Column(nullable = false, unique = true, length = 30) // uid column을 명시합니다. 필수이고 유니크한 필드이며 길이는 30입니다. + private String uid; + @Column(nullable = false, length = 100) // name column을 명시합니다. 필수이고 길이는 100입니다. private String name; - private String email; } diff --git a/src/main/java/com/rest/api/repo/UserJpaRepo.java b/src/main/java/com/rest/api/repo/UserJpaRepo.java index ea2044d..23bd73f 100644 --- a/src/main/java/com/rest/api/repo/UserJpaRepo.java +++ b/src/main/java/com/rest/api/repo/UserJpaRepo.java @@ -3,5 +3,5 @@ import com.rest.api.entity.User; import org.springframework.data.jpa.repository.JpaRepository; -public interface UserJpaRepo extends JpaRepository { +public interface UserJpaRepo extends JpaRepository { } diff --git a/src/main/java/com/rest/api/service/ResponseService.java b/src/main/java/com/rest/api/service/ResponseService.java index b666b61..fdc196b 100644 --- a/src/main/java/com/rest/api/service/ResponseService.java +++ b/src/main/java/com/rest/api/service/ResponseService.java @@ -12,8 +12,7 @@ public class ResponseService { // enum으로 api 요청 결과에 대한 code, message를 정의합니다. public enum CommonResponse { - SUCCESS(0, "성공하였습니디."), - FAIL(-1, "실패하였습니다."); + SUCCESS(0, "성공하였습니디."); int code; String msg; diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 92e7df2..29b011b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -8,7 +8,7 @@ spring: username: sa jpa: database-platform: org.hibernate.dialect.H2Dialect - #properties.hibernate.hbm2ddl.auto: none + properties.hibernate.hbm2ddl.auto: update showSql: true messages: basename: i18n/exception

AltStyle によって変換されたページ (->オリジナル) /