builder
[Spring] DB 관련 : Mybatis
[Spring] DB 관련 : Mybatis
2020.03.04Mybatis가 쿼리를 처리하는 방식? 스프링에서는 DB 커넥션을 어떻게 처리하는가? 쿼리 하나 날릴 때 마다 Connection을 맺고 끊는건 비효율적이므로, Connection Pool을 구성하여 Connection을 생성해두고, DB를 사용해야 할 때 Pool에서 커넥션을 빌려 쓰고 반납하게 되어 있다. Spring에서 제공하는 Connection Pool 인터페이스가 바로 `` DataSource`` 각 driver vendor들은 자사 규격에 맞게 `` DataSource`` 인터페이스를 구현해서 제공하고 있음!(커넥션 풀 구현체) ojdbc의 `` OracleDataSource`` jdbc의 `` ~~DataSource`` 각 벤더가 만들어 제공하는게 맞는게, Connection object를..
[Effective Java] 2장 객체 생성과 파괴
[Effective Java] 2장 객체 생성과 파괴
2019.12.02아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 GoF에 나오는 팩터리 메서드와는 다르다. public 생성자에 `` new``를 써서 객체를 만드는게 아니라, 아래 처럼 팩터리 메서드를 사용하는 것을 말함. public 생성자와 static factory 메서드는 각자 장단이 있지만, 후자가 유리한 경우가 더 많다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 장점0. 같은 메서드 시그니처를 가진 목적이 다른 생성자를 만들 수 있다. 책에는 나와있지 않지만 실제로 이런 경우에도 유용하다. @Data public static class DataArea { private final Strin..
[Spring] annotation : lombok, builder
[Spring] annotation : lombok, builder
2019.07.10@Data https://projectlombok.org/features/Data ``kt @Data = RequiredArgsConstructor + ToString + EqualsAndHashCode + Getter + Setter`` ``kt lombok.noArgsConstructor.extraPrivate=true`` 이면 private NoArgsConstructor 까지 붙는다. (1.16.22에서는 기본으로 활성화) 단, 필드 final 아닐 때 여기서 `` RequiredArgsConstructor``는 다른 Constructor 애너테이션이나 명시적으로 선언된 Constructor가 없을 때만 붙는다. callSuper를 설정해야 하는 경우 해당 애너테이션과 Data를 함께 써도 된다...