JVM68 [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. [SpringBoot] 전자정부프레임워크 SpringBoot 테스트용 웹 프로젝트 만들기 기본Spec EgovFramework 4.0 - 64bit Java 1.8 Tomcat 8.0 Gradle Project SpringBoot 2.6.5 전자정부 프레임워크 4.0 설치 https://haenny.tistory.com/294 [EgovFramework] 전자정부프레임워크 4.x 개발환경 다운로드 및 Lombok 설치 [EgovFramework] 전자정부프레임워크 4.x 개발환경 다운로드 및 Lombok 설치 전자정부프레임워크 다운로드 전자정부프레임워크 4.x 개발환경 다운로드 받으러가기 개발환경 - 4.x 다운로드 | 표준프레임 haenny.tistory.com JDK (Java) 설치 https://haenny.tistory.com/219 [Java] Windows10 환경 OpenJDK.. JVM/SpringBoot 2022. 4. 4. SpringBoot "Path with "WEB-INF" or "META_INF" : [WEB-INF/jsp/main.jsp]" 경고 및 Whitelabel Error Page 오류 "Path with "WEB-INF" or "META-INF" : [WEB-INF/jsp/main.jsp]" SpringBoot 에서 main.jsp 화면을 만들고, Controller에서 View로 리턴을 하였는데 jsp 파일을 찾지 못하는 경우 ResourceHttpRequestHandler : Path with "WEB-INF" or "META-INF" 이런식으로 발생하는 오류이다. 브라우저에는 첨부한 이미지와 같이 Whitelabel Error Page가 표출되고, Console에서는 위와 같은 오류 로그를 확인할 수 있다. 이 오류는 Spring Boot에서 내장된 Tomcat을 사용 하는 경우 JSP 를 처리하는 서블릿을 추가하지 않아 발생하는 것으로 의존성(dependency)을 추가해주면 .. JVM/SpringBoot 2022. 4. 3. Failed to determine a suitable driver class 오류 해결 오류 로그 ********************************* APPLICATION FAILED TO START ********************************* Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.. JVM/SpringBoot 2022. 4. 2. SpringBoot 2.5 → 2.6 업그레이드 시No more pattern data allowed after {*...} or ** pattern element 오류 해결 오류 로그 No more pattern data allowed after {*...} or ** pattern element ********************************* APPLICATION FAILED TO START ********************************* Description: Invalid mapping pattern detected: /**/*.do ^ No more pattern data allowed after {*...} or ** pattern element Action: Fix this pattern in your application or switch to the legacy parser implementation with 'spring.mvc.pa.. JVM/SpringBoot 2022. 4. 2. SpringBoot Initializing Spring DispatcherServlet 'dispatcherServlet' SpringBoot 실행 후 웹페이지 로드 시에 표출되는 로그 Initializing Spring DispatcherServlet 'dispatcherServlet' Initializing Servlet 'dispatcherServlet' Completed initialization in 1 ms application.properties 에 load-on-startup 추가 spring.mvc.servlet.load-on-startup=1 load-on-startup web-xml 에서 서블릿 설정 시 들어가는 숫자 해당 서블릿의 init() 메소드가 호출되는 시기와 순서를 정하는 것 보통의 서블릿은 반드시 '해당 서블릿'에 최초 요청이 들어올 때만 인스턴스화 초기 설정을 하게 되는데 시간이 너무 오래 .. JVM/SpringBoot 2022. 4. 1. [Java] 스트림 (Stream) 타입별 변환 스트림 (Stream) 만들기 컬렉션 스트림 Collection에 stream()이 정의되어 있어 Collection의 자손인 List와 Set을 구현한 컬렉션 클래스들은 모두 stream()으로 스트림을 생성할 수 있다. Stream Collection.stream() // List로부터 스트림 생성 List list = ARrays.asList(1,2,3,4,5); Stream intStream = list.stream(); 배열 스트림 배열을 소스로하는 스트림을 생성하는 메서드로 Stream과 Arrays에 static 메서드로 정의되어 있다. 문자열 스트림 Stream srtSTream = Stream.of("a","b","c");// 가변인자 Stream srtSTream = Sream.of(n.. JVM/Java 2022. 3. 30. [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. [Java] POI 엑셀 다운로드 시 Invalid char (/) found at index (6) in sheet name 에러 [Java] POI 엑셀 다운로드 시 Invalid char (/) found at index (6) in sheet name 에러 Java 엑셀 다운로드 구현하기 [Java] POI 라이브러리 사용 : 엑셀 다운로드 로직 구현하기 [Java] POI 라이브러리 사용 : 엑셀 다운로드 로직 구현하기 - 의존성 추가 Spring Boot 경우 build.gradle에 Gradle dependency 추가 compile group: 'org.apache.poi', name: 'poi', version: '3.13' Spring 경.. haenny.tistory.com Java에서 엑셀다운로드 로직을 구현한 뒤 실행을 했더니 다음과 같은 에러가 발생했다. java.lang.IllegalArgumentExcep.. JVM/Java 2022. 2. 15. 이전 1 2 3 4 5 6 다음 추천 글 728x90 반응형