JVM/Spring13 [Spring] @Valid 와 @Validated 활용한 유효성 검증 (Feat. Custom Valid Annotation 생성) 부제 : Java Bean Validation 과 Spring Framework Validation Validation의 정확한 동작 방식을 모른채, Validation Annotation 생성하여 해결하려다 원하는 대로 동작하지 않아 결국 유효성 검증 동작 방식을 찾아보게 되었다. 관련해서 동일한 난관에 부딪혔을 때 참고하면 좋을 것 같아 남긴다. 문제 상황 동일한 클래스에 대해 제약조건이 다른 경우 필자의 경우, 하나의 클래스에서 제약조건이 다른 경우 보다는 상속 관계를 가진 부모-자식 객체에서 동일한 필드에 대한 제약조건이 다른 경우였다. 결론에 언급하겠지만, 현 게시글의 해결책은 하나의 클래스에 대해 제약조건 설정하는 경우에 더 적합하긴 하다. 요구 사항 부모 객체 name 필드는 NotNull .. JVM/Spring 2023. 10. 4. [Spring] 스프링 5.0 WebFlux 에 대해 WebFlux 개요 Spring 5에서 도입된 reactive-stack web framework asynchronous (비동기) - non-blocking(논블로킹) reactive 개발에 사용 reactive streams 의 back pressure 지원 non-blocking server에서의 실행 지원 (Netty, Undertow, and Servlet 3.1 + containers) Tomcat, Jetty 와도 실행 가능 스레드나 CPU 자원을 낭비하지 않고, 많은 요청을 처리할 수 있는 고성능 웹 애플리케이션 개발 목적 Spring 5.0 의 WebFlux 주요 특징 ? 함수형 프로그래밍 - 최소 Java 8 + 버전 사용, Java 8에 람다 함수 표현이 추가되어 함수형 프로그래밍 가.. JVM/Spring 2022. 5. 11. [Spring] Request Parameter (QueryString, Json) 데이터와 Annotation (@RequestParam, @RequestBody) 알고 쓰자 선행지식 쿼리스트링 (Query String) ? 사용자가 입력 데이터 전달하는 방법 중 하나로, URL 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것으로 를 붙여 어러 개의 파라메터를 넘 길 수 있다. key1=value1&key2=value2 JSON (JavaScript Object Notation) ? 속성과 값 또는 키와 값을 쌍으로 이루어진 데이터 교환 형식을 의미한다. key1:value1, key2:value2 이번 포스팅에서는 SpringMVC 구조에서 요청 파라메터 데이터 타입 이나 요청 타입을 고려하지 않고 Annotation 을 무분별하게 사용하는 것을 방지하고자한다. 클라이언트에서 요청하는 데이터 타입은 총 2가지 Query String 형태, Json 형태 로 살펴볼 것.. JVM/Spring 2022. 4. 5. [MyBatis] Dynamic Query Map(or Value Object) 파라메터 foreach 문법에 key, value 사용하기 단순 List나 Array의 foreach INSERT, UPDATE, DELETE, MERGE 문의 관한 내용은 아래 게시글을 참고하자. [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE, UPDATE) - Oracle [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE, MERGE, UPDATE) - Oracle foreach문은 사용할 때마다 사용되는 위치도 속성도 어려워서 더이상 헷갈리지 않기 위해 남겨본다 :-) ! MySQL foreach 사용방.. haenny.tistory.com [MyBatis] List 파라메터 foreach 사용 (INSERT, DELETE) - MySQL [MyBatis] List 파라메터.. JVM/Spring 2022. 3. 15. [Spring] Spring Scheduler 간단하게 설정하기 일정주기마다 특정 작업을 실행하기 위해 스프링 스케쥴러를 사용하여 구현하는 방법을 살펴보자. Scheduler Class 생성 package com.haenny; public class Test { public void start() { // 주기적으로 실행할 코드 } } dispatcher-servlet.xml 설정 일정 주기마다 실행하는 스케쥴러 등록을 위해 bean 태그에 task를 추가한다. /* 스케줄러를 위한 xmlns */ xmlns:task="http://www.springframework.org/schema/task" /* task shcema */ http://www.springframework.org/schema/task http://www.springframework.org/sche.. JVM/Spring 2022. 3. 7. [Web] 415 (Unsupported Media Type) 오류 원인 살펴보기 415 Unsupported Media Type 한번쯤 만나봤을 이 골치아픈 415는 클라이언트(View)와 서버(Controller)의 요청/응답하는 데이터의 매개변수 설정이 잘못되었을 때 주로 발생한다. 오늘 해결방법으로 두 가지를 모두 살펴볼 것이다. 헤더 타입 설정 RequestBody 설정 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다. 추천인 코드 : AF8800551 HTTP Request, Content-Type 헤더와 Accept 헤더 확인하기 Content-Type 헤더와 Consumes 설정 @RequestMapping의 consumes 설정과 Content-Type request 헤더가 일치할 경우에 URL이 호출된다. Content-Type은.. JVM/Spring 2022. 2. 18. [Spring] 스프링 properties 설정 파일 분리하기 서버환경에 따라 종속적인 정보가 있을 경우(로컬, 개발, 운영에 대한 DB 정보가 다를 때), 이를 애플리케이션의 구성정보를 하기 위해 주석을 지우고, 다른 서버 환경의 정보는 주석을 설정하고를 반복적으로 하다보면 관리하기가 불편하고 실수할 때가 많다. 환경에 따라 값을 다르게 처리하여, 보다 효율적으로 관리하기 위해 Properties 설정파일을 분리해보자. 기본구조 Spring Maven 프로젝트를 생성하면 src/main/resources 내에 globals.properties 파일이 있다. 파일을 분리하기 전 globals.propertis 파일을 보면 DB 별로, 실서버 별로 설정한 것을 볼 수 있다. (테스트하고 적용하고 할 때마다 귀찮고, 실수가 잦아진다.) 프로퍼티(Properties) 생.. JVM/Spring 2022. 1. 26. [Web] 파일업로드 시 404 에러 (Current request is not of type ) [Web] 파일업로드 시 404 에러 (Current request is not of type ) 파일업로드 기능 구현 시 발생한 에러 Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]: SecurityContextHolderAwareRequestWrapper url 주소와 post type 등을 모두 확인했음에도 안되는 경우 확인해야하는 부분 Spring context-common.xml pom.xml commons-fileupload commons-fileupload 1.3.3 commons-io commons-io 2.5 Spring Boot globals.properties sp.. JVM/Spring 2021. 12. 9. [Spring] NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined 오류 해결 [Spring] NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined 오류 해결 전자정부 프레임워크 Spring (Maven) Project를 구동하였더니 발생한 에러였다. 심각: Exception starting filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined at org.springframework.beans.factory.support.DefaultListableBeanFactory.g.. JVM/Spring 2021. 5. 20. [Spring] context-datasource.xml 설정 : DBCP configuration 살펴보기 [Spring] context-datasource.xml 설정 : DBCP configuration 살펴보기 - globals.properties driver=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521/sols// @ host name : port / SID username=eca_new// user name password=eca!@34// password - conetext-datasource.xml ${url} ${username} ${password} DBCP configuration DBCP BasicDataSource iBATIS SimpleDataSource Option description driverClass.. JVM/Spring 2020. 7. 6. [Error] Class : org.springframework.util.AntPathMatcher not found 에러 [Error] Class :org.springframework.util.AntPathMatcher not found 에러 # Spring MVC 프로젝트 context-*.xml 에러 : Class not found error 전자정부프레임워크 3.8.0 버전 업그레이드 후 Spring 프로젝트 SVN Import 후에 난 에러이다. [Eclipse] 전자정부프레임워크 3.8 버전 업그레이드 하기 (1) Spring [Eclipse] 전자정부프레임워크 3.8 버전 업그레이드 하기 (1) Spring 기존 egovFramework 3.6.0 버전에서 개발을 하고 있었는데 3.8버전을 업그레이드 하려한다. 분명 언젠가 또 업그레이드 할 날이 올 것을 대비.. haenny.tistory.com 다음과 같은 에.. JVM/Spring 2019. 11. 18. [Error] Spring 웹 프로젝트 META-INF\MANIFEST.MF (지정된 경로를 찾을 수 없습니다) 에러 해결 [Error] Spring 웹 프로젝트 META-INF\MANIFEST.MF (지정된 경로를 찾을 수 없습니다) 에러 해결 전자정부 프레임워크 버전 업그레이드 하면서 Spring Web Project를 SVN Import하면서 pom.xml에 발생한 에러이다. " META-INF\MANIFEST.MF (지정된 경로를 찾을 수 없습니다) " 처음 import할 때는 아무런 에러가 없다가 Maven Update Project를 하면 에러가 발생한다. 위에서 알려주는 경로 [target] - [m2e-wtp] - [web-resource] - [META-INF] 로 가니 MANIFEST.MF 가 존재하지 않았다. 처음에는 기존 프로젝트 같은 경로에 있는 MANIFEST.MF 파일을 복사해서 넣는 방식으로 했는.. JVM/Spring 2019. 10. 25. 이전 1 2 다음 추천 글 728x90 반응형