본문 바로가기

STUDY

(287)
Lombok 롬복은 어노테이션 프로세서(annotation processor)로, 컴파일 시점에 어노테이션으로 코드를 추가할 수 있다. @Getter, @Setter어노테이션을 추가했다면, 컴파일되는 시점에 실제로는 getter() setter()메서드가 실제 코드로 추가된다는 것. @Getter / @Setter getter나 setter 혹은 둘 다 필요한 변수에 어노테이션을 사용하여 바로 getter, setter를 생성할 수 있다. 필요하면 클래스에 어노테이션을 사용할 수도 있는데, static이 아닌 모든 멤버변수에 getter, setter메서드가 생성된다. @Getter @Setter public class Perscon { private String name; private int age; } @Set..
Spring Boot | Exception만들기 1. CustomException 부모 클래스 생성 RuntimeException을 상속받아 작성한다. ErrorCode를 입력받는 생성자를 생성, super(errorCode.getMessage())는 아래와 같이 exception발생 시 메시지를 설정한다. public class CustomException extends RuntimeException implements Serializable { private ErrorCode errorCode; public CustomException(ErrorCode errorCode) { super(errorCode.getMessage()); this.errorCode = errorCode; } public ErrorCode getErrorCode() { re..
Spring Boot | Spring Security @PreAuthorize사용하기 의존성 참고! // Sprint Security implementation 'org.springframework.boot:spring-boot-starter-security' // OAuth2 implementation group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.5.RELEASE' // JWT implementation group: 'org.springframework.security', name: 'spring-security-jwt', version: '1.1.1.RELEASE' 1. @EnableGlobalMethodSecurity 설정 MethodSecurity는 말그대로 메소드..
Java | MultipartFile image width와 height 알아내기 private void checkImageSize(MultipartFile file) { try { BufferedImage bufferedImage = ImageIO.read(file.getInputStream()); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); System.out.println(String.format("width = %d height = %d", width, height)); } catch (IOException e) { e.printStackTrace(); } }
Java | 객체를 XML로 쉽게 변환하기 (JAXB, javax.xml) Object를 XML형식으로 빠르게 변환할 수 있다..! 1. 루트 클래스 선언 @XmlRootElement : 말그대로 루트 엘리먼트(최상위 요소)를 지정한다. 나중에 JAXBContext에 등록해주어야 함 @XmlAccessorType : 바인딩 시 필드 및 특성..(?) PUBLIC_MEMBER, FIELD, PROPERTY, NONE의 네 가지 속성이 있음 FIELD - 클래스의 모든 필드(static이 아니고 transient가 아닌)를 모두 XML에 바인딩 NONE - 어노테이션으로 지정하지 않는한 모든 필드는 XML에 바운딩되지 않는다. PROPERTY - getter/setter를 가진 모든 필드들은 자동으로 XML에 바운드된다. PUBLIC_MEMBER - 모든 public getter/..
Spring Boot | REST API 파일 업로드 / 다운로드 Spring Boot File Upload / Download Rest API Example Uploading and downloading files are very common tasks for which developers need to write code in their applications. In this article, You'll learn how to upload and download files in a RESTful spring boot web service. We'll first build the REST APIs for up www.callicoder.com 1. multipart관련 사용 설정 application.properties나 application.yml에 multipar..
Spring Boot | @ControllerAdvice로 Exception 처리하기 참고! Spring Guide - Exception 전략 - Yun Blog | 기술 블로그 Spring Guide - Exception 전략 - Yun Blog | 기술 블로그 cheese10yun.github.io 0. Controller /messages URI로 POST요청을 하면, @Valid 어노테이션이 설정되어 있기 때문에 MesseageParam에 설정된 검증 항목(?)들을 검사한다. 만약 검증을 통과하지 못하면..! (더 큰 값을 보낸다거나 필수값을 보내지 않는 등..) Exception이 발생한다.. @RestController public class MessageController { @PostMapping(value = "/messages", produces = "applicatio..
Spring Boot | 유효성 검사 직접 만들기! (Custom Constraint) 기본적으로 제공되는 어노테이션 말고, 직접 만들어볼 수 있다. 1. 제약(Constraint) @interface 작성 여기서 message, groups, payload는 기본적으로 꼭 작성해주어야 하는 값이다. @Size(max = 10, message = "...", groups = {...}) 이런식으로 받아지는 값이라고 생각하면 쉬움 @Target({METHOD, FIELD, TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE}) @Retention(RUNTIME) @Constraint(validatedBy = SmsBytesSizeValidator.class) @Documented public @interface SmsBytesSize { String message() def..