전체보기(316)
-
영속성 컨텍스트 정리
Hibernate 에서는 EntityManagerFactory = SessionFactory, EntityManager = Session 이라고 불렸다. 즉 EntityManager 의 역할은 세션, Transaction 의 관리다. 영속성 컨텍스트의 장점 1. 캐시 2. 쓰기 지연 3. 로딩 지연 (프록시로 구현 : 없는 시점에 가져오도록 되어있음) 4. 변경 감지 (update 메소드가 없어도 된다) 5. 동일성 보장 (영속성 컨텍스트의 data는 DB와 동일하다.)
2019.05.20 -
스프링 부트 강의 정리 (31~34 : NoSQL, API Client)
Spring boot with NoSQL : https://kok202.tistory.com/133?category=795332 Spring boot's NoSQL Spring Data에서 지원하는 NoSQL -> Redis, MongoDB, Neo4J, Elasticsearch, Redis, Cassandra ... -> 이러한 다양한 기술을 사용할 때 지정해야하는 Bean 설정들을 스프링 부트가 알아서 해준다. 아래 예제들은 l.. kok202.tistory.com Spring boot with API Client : https://kok202.tistory.com/132?category=782902 Spring boot's RestTemplate, WebClient Spring 에서 Remote R..
2019.05.19 -
스프링 부트 강의 정리 (28~30 : Database)
스프링 프레임워크는 SQL DB에 접근하기 위해 다양한 방법등을 지원한다. 방법 1. JDBC를 직접 사용하는 방법(JdbcTemplate) 방법 2. MyBatis(Mapper)를 사용하는 방법 방법 3. JPA(ORM)을 사용하는 방법 등 DataSource 스프링 부트는 DataSource를 필요한 곳 어디에서든 재사용한다. DataSource 를 정의하는 방법은 두가지가 있다. 방법 1. datasource를 커스텀하게 Bean 으로 등록하고 properties 이용하기 @Bean @ConfigurationProperties(prefix="app.datasource") public DataSource dataSource() { return new FancyDataSource(); } app.dat..
2019.05.19 -
Orphan removal vs Cascade.remove
Orphan removal 는 OneToMany OneToOne 일 때 사용 가능하다. OneToOne : Orphan removal vs Cascade.remove Cascade.remove @Entity class Parent { @OneToMany(cascade=CascadeType.REMOVE) List children; } parentRepository.delete(parentA) 하면 children 들도 같이 제거가된다. parentA.setChildren(null) = 부모가 자식을 버리는 행위 -> 자식은 고아가 된다. -> 하지만 이를 save, flush 하지 않으면 DB에서 되지 않는다. Orphan removal @Entity class Parent { @OneToMany(orph..
2019.05.16 -
스프링 부트 강의 정리 (26 ~ 27 : Security)
Security content 는 요청에따라 httpBasic 또는 fomLogin 중 어떤 것을 사용할지 판단하기 위해 Spring-security negotiation 전략을 사용한다. 스프링 부트 기본 설정 상으로 AuthenticationManager 유저가 하나 존재한다. 유저의 이름은 user이다. 패스워드는 INFO level의 logger 에서 랜덤하게 생성되서 출력된다. 원한다면 spring.security.user.name, spring.security.user.password 를 이용해서 수정할 수 있다. org.springframework.boot spring-boot-starter-security @Data public class User { private int id; priva..
2019.05.11 -
스프링 부트 강의 정리 (23 ~ 25 : 웹플럭스, 컨테이너)
웹플럭스 특징 1. Servlet 을 안씀 특징 2. Reactor 기능을 써서 구현 특징 3. depedency에 spring-web 과 spring-webflux 가 동시에 있으면 Spring MVC로 설정한다. 웹플럭스의 생김새 1 - Annotation 형태 - 맵핑(라우팅)과 핸들러의 병합 - Spring MVC 에서 쓰는 것과 똑같다. @RestController @RequestMapping("/users") public class UserController { @Autowired UserService userService; @GetMapping("/{userId}") public Mono getUser(@PathVariable Long userId) { return Mono.just(user..
2019.05.11