MVC2 - Bean Validation
·
Spring
Bean Validation 정의 검증 애노테이션과 여러 인터페이스의 모음 - 인터페이스만 제공하고 구현체를 갈아끼울 수 있음 주로 Hibernate 이용 Hibernate : 객체 관계 매핑 프레임워크 애노테이션만 붙이면 될까? NO! 👉 Validator를 필요로 함 Bean Validation 사전준비 build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' jarcarta.validation.api 설치 확인가능 -> hibernate.validator가 실제 구현체로 동작 javax.validation (ex:@NotNull, @NotBlank) : 특정 구현에 상관없이 제공하는 표준 인..
MVC2 - Validation
·
Spring
상품 등록시의 검증 Validation Flow 정상 로직 PRG : POST - Redirect - GET 비정상 로직 예) 상품명을 입력하지 않거나, 숫자 필드에 문자가 들어오는 경우 컨트롤러에서 검증이 실패하면 검증에 실패한 정보를 담아서 등록 폼을 다시 렌더링한다. 컨트롤러에서 모델에 잘못된 데이터까지 다시 담아서 등록 폼에 다시 전달해야 한다. 어떤 값이 잘못되어 있는지 다시 알려 주어야 한다. StringUtils : 문자열 관련 기능을 강화한 클래스 Validation 방법 타입 오류 처리하기 타입 오류는 컨트롤러 접근 전에 500 - BAD REQUEST로 발생한다. 타입 오류가 발생해도 오류가 폼에 남아야 하지만 바인딩이 처리되지 못함 BindingResult 검증 오류를 보관하는 객체...
File->MultipartFile
·
Spring
build.gradle dependency 추가 implementation 'commons-fileupload:commons-fileupload:1.4' compile 'commons-io:commons-io:2.11.0' File->MultipartFile 변환 코드 File file = new File(fileName); FileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length(), file.getParentFile()); try { FileInputStream fileInputStream = new FileInputStream(file..
QueryDSL 사용 전 환경설정
·
Spring
QueryDSL이란? SQL과 유사한 구문으로 안전한 쿼리를 생성할 수 있는 광범위한 Java 프레임워크 재 JPA, JDO, SQL, Java 컬렉션, RDF, Lucene, Hibernate Search, MongoDB를 포함한 별도의 모듈을 사용하여 다양한 백엔드를 광범위하게 지원한다. IDE에서 코드 완성, 리팩토링이 가능하고 , Type-Safe, Syntax-Safe 하다! QueryDSL 설정을 해 보자! 1. build.gradle 설정 추가 plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id "com.ewerk.gradle.p..
Reactive Programming
·
Spring
https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro Introduction to Reactive Programming - Reactive Programming with Reactor 3 Explore this playground and try new concepts right into your browser tech.io 해당 링크를 통해 공부하며 정리했습니다! 구글 번역과 상상력으로 정리한 것이라 틀릴 수 있습니다😢 Reactor 3는 JVM에 Reactive Programming 패러다임을 제시하는 라이브러리다. 왜 리액트 프로그래밍을 쓸까? 리액트 프로그래밍은 비동기 파이프라이닝 처리를 위해 선언적 프로그래밍(함수형 프..
스프링 핵심 원리 - 기본편(빈 스코프)
·
Spring
스코프 : 빈이 존재할 수 있는 범위를 뜻한다 스프링의 스코프 종류 1. 싱글톤 : 스프링 컨테이너의 생성- 종료까지 유지 2. 프로토타입 : 프로토타입 빈의 생성과 의존관계 주입까지만 관여 3. 웹 관련 스코프: request ) 웹 요청이 들어오고 나갈 때 까지 유지 session ) 웹 세션이 생성-종료까지 유지 application ) servlet context와 같은 범위로 유지 밑줄 친 스코프를 주로 사용한다.. [프로토타입 스코프] 싱글톤 스코프는 생성된 빈을 요청할 시 동일한 빈을 반환한다 그러나 프로토타입 스코프의 빈은 스프링 컨테이너에 프로토타입 빈을 요청한 시점에 생성하고 의존관계를 주입한다 그리고 스프링 컨테이너는 프로토타입 빈을 클라이언트에 반환하고 관리하지 않는다😅. 즉 클라이..