작업하면서 배우는 것들 17

Missing URI template variable for method parameter of type

컨트롤러에 매핑된 URI 템플릿이 알맞지 않다 라는 오류 보통 @PathVariable 에 의해 일어남. 요거를 public interface ProductCompositeService { /** * curl 호스트:포트/product-composite/1 * @param productId * @return */ @GetMapping(value = "/product-composite/{productId}",produces = "application/json") ProductAggregate getProduct(@PathVariable("prodcutId") int productId); } @PathVarible에 맵핑될 경로변수와 파라미터를 잘 지정해주자. public interface ProductCo..

ObjectMapper 에서 Long 이나 Integer 등 Wrapper 타입 맵핑이 안됨

@Entity 클래스에 보통 id 값을 Long 으로 잡는데 이럴때 ObjectMapper가 Long 컨버팅 안됨. 아무튼 안됨 할때가 있다. (String.valueOf() 는..? 했었음.) 이때는 제네릭 타입을 정확히 잡아주는 TypeReference 를 사용하자. @GetMapping("/account/find/{id}") public Map findAccount(@PathVariable Long id){ try { Account account = accountService.processFindAccount(id); Map stringStringMap = new ObjectMapper().convertValue(account, new TypeReference() { }); log.warn(stri..

JPA Query DSL 그레이들에 적용하기

필요 플러그인 id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' 필요 의존 implementation 'com.querydsl:querydsl-jpa' 필요 설정 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.query..

Vue Router 싱글 컴포넌트 방식에서 Body 만 변경시키기

Router 에서 Body 만 바꾸겠다고 1시간 가량 삽질을 한 기록이다. 일단, router.js 에서 Body 컴포넌트의 하위 컴포넌트로 링크에 따른 컴포넌트를 정의한다. import Vue from 'vue'; import VueRouter from 'vue-router' import LoginComp from "../components/body/LoginComp"; import Body from "../components/Body"; import Carousel from "../components/body/Carousel"; Vue.use(VueRouter); export const router = new VueRouter({ mode: 'history', routes: [ {path: '/', ..

엑셀 파싱 기본.

필요의존, 핵심은 POI org.apache.poi poi-ooxml 4.0.0 com.fasterxml.jackson.core jackson-databind 2.9.4 commons-fileupload commons-fileupload 1.3.2 저장하려는 엑셀의 로우와 상황에 따라 다르겠지만 VO 클래스를 사용했다. public class Fruit { String name; long price; int quantity; public Fruit() { } public Fruit(String name, long price, int quantity) { this.name = name; this.price = price; this.quantity = quantity; } public String getNa..