Devlopment/Spring

    Spring Security 관련 레퍼런스 정리

    Spring Security Reference- Spring Security reference 3.2.10http://docs.spring.io/spring-security/site/docs/3.2.10.RELEASE/reference/htmlsingle/html5/#what-is-acegi-security - Hello world guidehttp://docs.spring.io/spring-security/site/docs/current/guides/html5/helloworld-xml.html - spring boot securityhttp://kielczewski.eu/2014/12/spring-boot-security-application/ SlideShare- 해외 자료 (정리 잘 되어있음)ht..

    Jackson에서 null string 안 보이게 설정

    아래와 같이 사용을 하려했지만 Deprecated 되었다. @JsonSerialize(include=JsonSerialize.Inclusion.NON_DEFAULT) 찾아보니 2. 대에서 사용법이 바뀐듯한데아래와 같이 사용을 하면 된다. mapper.setSerializationInclusion(Include.NON_NULL); 또는 @JsonInclude(Include.NON_NULL) class Foo { String bar; }

    JPA Hibernate 사용 중 ORA-00001: 무결성 제약 조건( ORA-00001 에러

    개발 도중 이상한 에러와 직면했다.분명 무결성 제약 조건에 걸릴 일이 없는데 자꾸 무결성 제약 조건 에러가 나는 것이었다.별거 아닌데, 1시간을 넘게 에러를 찾게 되었고, 결과는 역시 JPA에 대한 사용 미숙이었다. Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(***.*****)에 위배됩니다 Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement org.springframework.dao.DataIntegrityViolationException: could not execute statemen..

    Spring에서 기본적인 component-scan 설정

    Spring에서 자주 하는 component-scan에 대한 설정이다.이것을 왜 하는지 모르는 사람도 많이 보았다. servlet-context에 전체 스캔을 다 해버리고 한 곳에서 잘 되는데 왜 이것을 이렇게 설정을 해두었냐는 사람도 보았다. (물론 그렇게 해도 동작은 잘 하지만..... )서블릿과 애플리케이션에 대한 분리는 인터넷이나 책에서 찾아서 공부를 하길 권장한다. ([1] 참조) 아래 xml을 보면 중요한 점은 디폴트 필터의 적용 여부와 include, exclude에 대한 차이이다.디폴트 필터는 기본적으로 true인데, true일 경우 Repository, Component, Service, Controller등에 대한 모든 annotation에 대한 객체를 생성해버린다. 그래서 servle..

    Spring에서 Pageable, Valid 설정 유의 설정

    Spring에서 Pageable 사용시 필요한 xml 설정스프링에서 Pageable을 사용하려면 아래와 같은 세팅을 해야 한다.Pageable에 대한 구현 리졸버와 정렬 리졸버에 대한 세팅을 해야 한다.그리고 여러 리졸버 사용시 DomainClassConverter와 conversionService가 필요하다.([1] 참조) 그리고 나와 같은 경우, 하단 설정을 하기 전에 이미 annotation-driven에 대한 설정이 xml 상단에 이미 되어 있었는데해당 설정을 지우지 않고 아래와 같이 설정을 했더니 아래 설정이 적용이 되지 않아서 한참을 고생했다.이미 annotation-driven 설정이 있다면 하단 설정을 지우고 해야만 한다. @Valid 설정에 대한 문제하단과 같이 "annotation-dr..

    QueryDSL

    Reference[1] QueryDSL (http://www.querydsl.com/static/querydsl/3.6.3/reference/ko-KR/html_single/#d0e1861)[2] queryDSL & Spring Data JPA (http://netframework.tistory.com/380)[3] 권남 (http://kwonnam.pe.kr/wiki/java/querydsl)

    Hibernate Dialect (ORA-00933 Pagable error)

    Hibernate를 사용하다가 ORA-00933이 발생하였다.Pagable에 대한 처리를 해야 하는데 오라클인데 쿼리에 "limit"와 "offset"을 사용하여서잘못된 쿼리를 만들어서 발생을 하게 된 것이었다. 처음에는 하이버네이트 왜 이러지 싶었고, Spring Data JPA의 문제인가오라클에서는 제대로 처리를 못 하나 싶은 생각이 들었지만역시나 나의 설정 문제였다. org.hibernate.dialect.Oracle10gDialect 오라클 방언 설정을 해야 하는데 H2Dialect를 사용했다가 발생한 문제였다.오라클 방언으로 설정 변경 후 제대로 동작한다. Diacect의 종류는 다음과 같다. RDBMS Dialect PostgreSQL org.hibernate.dialect.PostgreSQL..

    JPA, Hibernate 속성 정리

    데이터베이스 스키마 자동 생성hibernate.hbm2ddl.autocreate: 기존테이블 삭제 후 다시 생성 (DROP + CREATE)create-drop: create와 같으나 종료시점에 테이블 DROPupdate: 변경분만 반영(운영DB에는 사용하면 안됨)validate: 엔티티와 테이블이 정상 매핑되었는지만 확인none: 사용하지 않음매핑 어노테이션@Columnname: 필드와 매핑할 테이블의 컬럼 이름insertable, updatable: 읽기 전용nullable: null 허용여부 결정, DDL 생성시 사용unique: 유니크 제약 조건, DDL 생성시 사용columnDefinition, length, precision, scale (DDL)@Temporal 날짜 타입 매핑@Temporal..

    SpringBoot application.properties H2 DB설정

    * H2 Database 파일 속성jdbc:h2:file:~/test * H2 Database 메모리 속성(휘발성)jdbc:h2:mem:test * SpringBoot application.properties DB설정 spring.datasource.url=jdbc:h2:mem:testspring.datasource.username=saspring.datasource.password=spring.datasource.driverClassName=org.h2.Driver * spring.jpa.hibernate.ddl-auto 설정spring.jpa.hibernate.ddl-auto=update create: 기존테이블 삭제 후 다시 생성(DROP + CREATE)create-drop: create와 같으나..

    SpringBoot에서 H2 DB 관리자 UI 접속하기

    SpringBoot에서 H2를 사용할 경우 구동시에 DB상태를 보고 싶었다.가령 php my admin처럼 말이다. 찾아보니 이게 있는데 생각보다 간단하고 신기하다. Ref에 있는 해외 글에서 방법을 찾았다. 1. Maven, Gradle 추가Maven : com.h2database h2 Gradlecompile("com.h2database:h2") 2. H2 Servlet 추가import org.h2.server.web.WebServlet;import org.springframework.boot.context.embedded.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframewor..