일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dockercmd
- 스프링부트기본설정
- Open EntityManager
- JPA값타입
- JPAproxy
- 임베디드타입
- springboot기본설정
- JPA프록시
- springbootproxy
- springbootH2
- httppie
- gitinitial
- jpqlquery
- 이해와 원리
- 스프링부트
- 자바제너릭
- javageneric
- sql
- OSIV
- Git
- 제이피큐엘쿼리
- embededtype
- jpa
- MySqlType
- JPA Hint & Lock
- 데이터베이트h2
- spring
- JDBC connection pool
- 에이치투데이터베이스
- JPAmapping
- Today
- Total
목록전체 글 (69)
빡코
@Controller 애노테이션이 설정돼 있는 모든 클래스를 찾아서 출력하는 예제를 실습 Reflection • 힙 영역에 로드돼 있는 클래스 타입의 객체를 통해 필드/메소드/생성자를 접근 제어 자와 상관 없이 사용할 수 있도록 지원하는 API • 컴파일 시점이 아닌 런타임 시점에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법 • 주로 프레임워크 또는 라이브러리 개발 시 사용됨 • https://www.baeldung.com/reflections-library 전체적인 프로젝트 구조 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Controller { } @Target({ElementType..
테스트 코드를 이용한 테스트 TestRestTemplate package tobyspring.helloboot; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.*; import static org.assertj.core.api.Assertions.*; public class HelloApiTest { @Test void helloApi() { //http localhost:8080/hello?name=Spring TestRestTemplate r..
보호되어 있는 글입니다.
Transaction? 쪼갤 수 없는 단위로 한번에 성공 또는 실패하는 것을 의미 한다. 시작: start transaction 완료: commit 실패처리: rollback 영속성 컨텍스트? 테이블과 매핑된 Entity 객체를 관리/보관하는 역할 1. 변경감지(Dirty Check): 영속성 컨텍스트 안에서 불러와진 Entity는 명시적으로 save 를 해주지 않더라도 알아서 변경을 감지하여 저장 2. 쓰기지연: 트랜잭션이 commit 되는 시점에 SQL을 한번에 모아서 DB에 반영한다. 3. 1차 캐싱: entity의 Id를 기준으로 기억하는 기능, 같은 Id로 조회시 총 1번의 select 쿼리만 날라간다.
Spring Data JPA ? 복잡한 JPA 코드를 스프링과 함께 쉽게 사용할 수 있도록 도와주는 라이브러리 Spring Data JPA > JPA(ORM) > Hibernate(JPA 구현체) > JDBC 를 사용한다. JpaRepository를 상속 받은 UserRepository public interface UserRepository extends JpaRepository { Optional findByName(String name); //find: 1건을 가져옴, 반환타입 ? 객체 or null 반환 Boolean existsByName(String name); //쿼리 결과가 존재하는지 확인, 반환타입 boolean long countByAge(Integer age); //SQL의 결과 개수..
@Configuration : 클래스에 붙이는 어노테이션으로, @Bean을 사용할 때 함께 사용해 주어야 한다. @Bean : 메소드에 붙이는 어노테이션으로, 메소드에서 반환되는 객체를 스프링 빈에 등록한다 @Repository 어노테이션 대신 @Configuration과 @Bean 어노테이션을 활용하여 빈등록하기 package com.group.libraryapp.config; import com.group.libraryapp.repository.user.UserRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org...