본문 바로가기

반응형

Spring

(53)
JPA Example public class JpaMain { public static void main( final String[] args ) { /* * javax에서 제공하는 Persistence에서 entity manager factory 얻어오기. * Persistence unit name은 persistence.xml에 기입한 * * 과 같아야 */ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "hello" ); // entity namager factory 에서 entity manager 얻어오기 (database connection 받아온 것과 비슷함) EntityManager em = emf.createEntityManager(); ..
h2 database 사용하기 H2 database 다운로드 http://h2database.com/html/download.html drive 버전 맞춰야 pom.xml org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 persistence.xml 하이버네이트 properties hibernate.dialect 데이터베이스 방언 설정 JPA는 특정 데이터베이스에 종속되지 않는다. 따라서, 애플리케이션의 구성에 맞게 데이터베이스를 설정할 수 있다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름 가변 문자: MySQL은 VARCHAR, Oracle은 VARCHAR2 문자열을 자르는 함수: SQL 표준은 SUBSTRING(), Ora..
고급 매핑 상속관계 매핑 • 관계형 데이터베이스는 상속 관계 X • 슈퍼 타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 • 상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 위와 같은 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 세 가지 방법 • 각각 테이블로 변환 -> 조인 전략 • 통합 테이블로 변환 -> 단일 테이블 전략 • 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전 • @Inheritance(strategy=InheritanceType.XXX) • JOINED: 조인 전략 • SINGLE_TABLE: 단일 테이블 전략 • TABLE_PER_CLASS: 구현 클래스마다 테이블 전략 • @DiscriminatorColumn(name=“DTYPE”) • ..
[JVM] Please use CMSClassUnloadingEnabled in place of CMSPermGenSweepingEnabled in the future -XX:+CMSPermGenSweepingEnabled는 1.5에만 존재하고 1.6에는 존재하지 않기 때문 Window -> Preferences -> Java -> Installed Jres -> 자바 클릭후 Edit 클릭 -> Default VM arguments -XX:+CMSPermGenSweepingEnabled 이 옵션을 제거하고 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled 추가 CMS (Concurrent Mark Sweep)는 위와 같이 명시적으로 지정해야만 한다. Reference: http://stackoverflow.com/questions/3717937/cmspermgensweepingenabled-vs-cmsclassunloadi..
Rest API Rest APIApplication Programmin InterfaceRestREpressentational Statte Transfer인터넷 상의 시스템 간의 상호 운용성(interoperability)을 제공하는 방법중 하나시스템 제각각의 독립적인 진화를 보장하기 위한 방법REST API: REST 아키텍처 스타일을 따르는 API그런 REST API로 괜찮은가https://www.youtube.com/watch?v=RP_f5dMoHFc REST 아키텍처 스타일Client-ServerStatelessCacheUniform InterfaceLayered System (http를 사용하면)Code-On-Demand (optional) (http를 사용하면) Uniform Interface (발표 영상 1..
AccessDecisionManager 인증 : AuthenticationManager 인가 : AccessDecisionManager AccessDecisionManager AccessDecisionManager는 여러개의 voter를 가질 수 있다. 여러 목록의 voter를 거치면서 유효한 지 확인 spring security가 role hierarchy를 이해할 수 있도록, AccessDecisionManager에 설정 Access Control 결정을 내리는 인터페이스로, 구현체 3가지를 기본으로 제공한다. AffirmativeBased: 여러 Voter중에 한명이라도 허용하면 허용. 기본 전략. ConsensusBased: 다수결 UnanimousBased: 만장일치 AccessDecisionVoter 해당 Authentication..
Spring Security Architecture SecurityContextHolder와 Authentication https://docs.spring.io/spring-security/site/docs/5.1.5.RELEASE/reference/htmlsingle/#core-components SecurityContextHolder SecurityContext 제공, 기본적으로 ThreadLocal을 사용한다. ThreadLocal 이란, 하나의 스레드 내에 국한하여 공유할 수 있는 기능 (자세한 설명은 아래에) SecurityContextHolder만 알고 있으면, 인증 정보를 가져올 수 있다. SecurityContext Authentication 제공. Authentication Principal과 GrantAuthority 정보를 제공. Pr..
연관관계 맵핑 연관관계 맵핑 (단방향, 양방향) 테이블 외래키 하나로 양쪽으로 조인 가능 사실 방향이라는 개념이 없다 멤버와 팀 중 하나만 외래키를 두면 됨 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 (사실 단방향이 두 개) 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺은 객체 양방향 관계는 A->B, B ->A 처럼 참조가 두 개 객체 양방향 관계는 참조가 2군데 있음, 둘 중 테이블의 외래 키를 관리할 곳을 지정해 주어야 함 (연관관계의 주인 설정) 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음(update X), 단순 조회만 다대일 [N:1] 단방향 다 쪽에 외래키가 있어야 가장 많이 사용 다대일 ..

반응형