기존에 jdbc+Mybatis를 통하여 개발 프로젝트를 만들다가 JPA를 공부하면서 까먹지 않기 위해 블로그에 기록해 놓았다. 우선 간략하게 JPA를 소개하면, JPA는 기존의 RDB 방식에서 벗어나 ORM을 통해 객체 지향적인 테이블 설계가 가능하고, 기존의 SQL Query가 아닌 method를 통해 직관적인 데이터 조작이 가능하다. JPA의 가장 큰 특징은 아무래도 기존에 데이터를 전달하는 목적(DTO,VO)으로 사용했던 Mybatis와는 달리 객체 지향의 장점(캡슐화,추상화,상속 등의 다형성)을 살릴 수 있다는 것이다. 지금은 환경설정에 대한 글이므로, 자세한건 다음번에 이론을 정리할 때 써야겠다.. - 우선 프로젝트를 새로 만든다면, [New] -> [spring starter project] ..
스프링 부트에서 hibernate 와 JPA 사용 도중 아래와 같은 에러 메세지가 발생. No default constructor for entity 알고보니 해당 Entity에 default constructor를 안만들어줬었다..
스프링 부트 2.1 버전부터는 Bean Override 기능이 불가능하다고한다. 나의 경우 인코딩 설정을 'UTF-8'로 설정을 해주려고 Bean을 등록하던 도중 아래와 같은 에러 코드가 발생하였다. The bean 'characterEncodingFilter', defined in class path resource 위와 같은 Bean 설정 오류가 발생하였을 때는 스프링 설정 파일 [.properties]에 아래와 같이 작성하자 spring.main.allow-bean-definition-overriding=true
스프링 부트와 mySql을 연동하여 개발하던 도중, 아래와 같은 오류가 발생 com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Out of range value for column 데이터 길이만 바꾸면 되는줄 알고 데이터 유형은 INT인 채로 길이만 20으로 바꾸니 오류가 계속 났다.. 데이터 길이가 10 이상이면, BIGINT로 바꿔주자.
스프링 부트로 개발하던 도중 No serializer found for class 관련 오류가 났다. 나의 오류 원인은 @responseBody로 hashMap을 리턴했는데, 그 안에서 Json으로 변환 도중에 오류가 났던 것 같다. 관련 에러에 대해서 검색해본 결과, 아래 코드를 properties에 작성해주면 된다고 한다. jackson.serialization.fail-on-empty-beans = false 위 오류 사항에 대해서 다음번에 자세하게 알아봐야겠다.
이번 스프링 부트를 통한 MVC 설정은 JPA - MySql - Thymeleaf를 통해 만들었습니다. - [build.gradle]에 dependency 추가 dependencies { //jpa,jdbc관련 dependency implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation("commons-dbcp:commons-dbcp:1.4") implementation("org.springframework.boot:spring-boot-starter-jdbc:2.0.1.RELEASE") i..
보통 스프링 부트에서는 타임리프를 사용하는데, 스프링을 먼저 써보고 타일즈를 먼저 배워서 그런지 아직까진 타일즈가 편하다고 느껴서 스프링 부트에서의 타일즈 설정을 찾아보고 내가 겪은 점을 써본다. - [build.gradle] tiles 관련 dependency 추가 - 우선 jsp를 파싱해주기 위해서 [tomcat-embed-jasper]를 추가해줘야한다. 이게 없으면, 경로를 아무리 잘 잡아도 해당 jsp를 찾을 수 없다는 mapping 에러가 뜨게 된다. - 그리고, jsp를 쓰면 view에서 처리해줄 jstl을 사용하기때문에 이와 관련된 dependency를 추가해준다 - 마지막으로 tiles관련 dependency들을 추가해준다. dependencies { ......... implementat..
스프링에서는 XML에서 리소스 경로를 추가해줘야했기 때문에, 스프링 부트에서 리소스 경로를 어떻게 잡아줘야할지 찾아보게 되었고, 스프링 부트의 편리함을 다시 한 번 느낀다.. - 우선 스프링 부트는 [spring-boot-web-starter]에서 이러한 경로들을 미리 잡아준다 - 필요한 정보만 적어보자면, 리소스 경로가 /resources/static/** 이렇게 잡혀있기 때문에 우리가 html이나 jsp에서 리소스 경로를 추가하려면, 저 밑에 폴더와 파일을 생성해주면 된다. - 아래는 내가 설정한 리소스 경로 사진과 실제 적용 코드이다.