영속성 컨텍스트 란? entity를 영구 저장하는 환경입니다 EntityManager.persist(entity); 엔티티를 영속성 컨텍스트에 저장한다 (DB가 아님) EntityManager를 통해서 영속성 컨텍스트에 접근합니다 스프링에서는 엔티티 매니저와 영속성 컨텍스트가 N:1 엔티티의 생명주기 비영속(new/transient) 영속성 컨텍스와 전혀 관계가 없는 새로운 상태입니다 영속(managed) 영속성 컨텍스트에 관리되는 상태입니다 준영속(detached) 영속성 컨텍스트에 저장되었다가 분리된 상태입니다 삭제(removed) 삭제된 상태입니다 EntityMaagerFactory emf = Persistence.createEntityManagerFactory("test"); EntityManag..
Jackson 라이브러리란? json 데이터 구조를 처리해주는 라이브러리입니다 Jackson 동작원리 @RequestBody 형식이라면 Spring 에서 MessageConverter 를 통해 컨트롤러에서 리턴하는 객체를 후킹 합니다 MessageConverter 중 MappingJacksonHttpMessageConverter를 사용하여 리플렉션을 사용해 객체를 가져와 Jackson의 ObjectMapper 로 json 객체로 변경 합니다 스프링 3.1 이후부터는 클래스패스에 Jackson 라이브러리가 있으면 MappingJacksonHttpMessageConverter 자동등록 됩니다. 추가적으로 jackson 의 데이터 매핑은 멤버변수 네임이 아닌 getter 함수의 네이밍 기반으로 매핑이 됩니다
트랜잭션이란? 여러 과정을 하나의 행위로 묶을 때 사용됩니다 여러 단계를 수행했을때, 하나라도 실패하면 모두 취소되어야 합니다. 이렇게 함으로써 데이터의 무결성을 보장합니다 스프링에서 사용방법 @Transactional을 클래스 또는 메소드 레벨에 명시하면 해당 메써드 호출시 지정된 트랜잭션이 작동하게 됩니다 단, 같은 빈 내에서 @Transactional이 명시된 다른 메소드를 호출해도 작동하지 않습니다Spring Framework는 내부적으로 AOP를 통해 해당 어노테이션을 인지하여 프록시를 생성하여 트랜잭션을 자동 관리하기 때문입니다 하지만 스프링부트에서는 바이트 코드를 수정(CGLIB)이 기본으로 변경 되었습니다 전파옵션(Propagation) ▶ REQUIRED 디폴트 속성, 부모 트랜잭션 내에..
- Today
- Yesterday
- exception
- Concurrecy
- Spring
- LAMBDA
- 디자인패턴
- Redis
- 부하테스트
- nosql
- reactive stream
- Serialize
- Serializable
- Observer Pattern
- in-memory
- gslb
- 영속성
- template method
- object
- JMeter
- strategy
- Java
- concurrency
- Effective JAVA
- template
- Design Pattern
- reactive
- 메인보드#asrock b650m #조립pc #후기이벤트
- jvm
- iterable
- observable
- jdk11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |