Spring/etc
-
org.springframework.boot:spring-boot-{module}.jar 파일을 들여다보면 META-INF 폴더하위에 spring.factories 파일이 존재한다.해당 파일이 하는 역할이 무엇인지, 내용들은 어떤 걸 의미하는지 알아보자. spring.factories Spring Boot는 spring.factories 파일을 통해 특정 클래스들을 자동으로 로드할 수 있다.JAR 파일 내부의 META-INF/spring.factories 경로에 위치하며, SpringFactoriesLoader가 읽어 들이는 방식으로 동작한다. 주요 역할자동 설정(Auto-Configuration)org.springframework.boot.autoconfigure.EnableAutoConfigurat..
[Spring] 스프링부트 spring.factories 파일org.springframework.boot:spring-boot-{module}.jar 파일을 들여다보면 META-INF 폴더하위에 spring.factories 파일이 존재한다.해당 파일이 하는 역할이 무엇인지, 내용들은 어떤 걸 의미하는지 알아보자. spring.factories Spring Boot는 spring.factories 파일을 통해 특정 클래스들을 자동으로 로드할 수 있다.JAR 파일 내부의 META-INF/spring.factories 경로에 위치하며, SpringFactoriesLoader가 읽어 들이는 방식으로 동작한다. 주요 역할자동 설정(Auto-Configuration)org.springframework.boot.autoconfigure.EnableAutoConfigurat..
2025.02.13 -
보통의 경우에는 애플리케이션에서 하나의 DB에만 조회를 한다. 하지만 DB 부하를 분산하기 위해서 조회는 Slave에서만 한다던가, 샤딩된 DB를 사용하기도 한다. 이러한 경우에 어떻게 MultiDataSource를 조회할 수 있도록 Spring에서 설정할 수 있는지 알아보자. DataSource 정보 application.yml을 이용하여 DB url 및 user 정보 관리multi-datasource: kakao: url: jdbc:h2:tcp://localhost/~/testcase username: sa passwd: naver: url: jdbc:h2:tcp://localhost/~/test username: sa passwd: 위의 설정 정보를 매핑할 Da..
[Spring] RoutingDataSource 이용 DB 요청 분산(MasterSlave, Sharding..)보통의 경우에는 애플리케이션에서 하나의 DB에만 조회를 한다. 하지만 DB 부하를 분산하기 위해서 조회는 Slave에서만 한다던가, 샤딩된 DB를 사용하기도 한다. 이러한 경우에 어떻게 MultiDataSource를 조회할 수 있도록 Spring에서 설정할 수 있는지 알아보자. DataSource 정보 application.yml을 이용하여 DB url 및 user 정보 관리multi-datasource: kakao: url: jdbc:h2:tcp://localhost/~/testcase username: sa passwd: naver: url: jdbc:h2:tcp://localhost/~/test username: sa passwd: 위의 설정 정보를 매핑할 Da..
2025.01.16 -
Spring을 통해 WebApplication을 작성할 때 Redis를 크게 두 가지 방향으로 쓸 수 있을 것 같다. @Cacheable, @CacheEvict 등의 애너테이션을 활용한 Cache 용도 RedisTemplate를 활용한 다양한 자료구조에 데이터 관리(CRUD)먼저 Cache로 사용하는 방법을 알아보자. 의존성 implementation 'org.springframework.boot:spring-boot-starter-data-redis' Spring에서 @Cacheable, @CacheEvict, @CachePut과 같은 애너테이션을 만들어 두었고 해당 애너테이션이 어떻게 동작할지는 자신이 원하는 Cache Framework의 구현체만 주입해 주면 된다. -> CacheManage..
[Spring] Cache Abstraction 사용 (Redis)Spring을 통해 WebApplication을 작성할 때 Redis를 크게 두 가지 방향으로 쓸 수 있을 것 같다. @Cacheable, @CacheEvict 등의 애너테이션을 활용한 Cache 용도 RedisTemplate를 활용한 다양한 자료구조에 데이터 관리(CRUD)먼저 Cache로 사용하는 방법을 알아보자. 의존성 implementation 'org.springframework.boot:spring-boot-starter-data-redis' Spring에서 @Cacheable, @CacheEvict, @CachePut과 같은 애너테이션을 만들어 두었고 해당 애너테이션이 어떻게 동작할지는 자신이 원하는 Cache Framework의 구현체만 주입해 주면 된다. -> CacheManage..
2024.11.18 -
HandlerMethodArgumentResolver 란HandlerMethodArgumentResolver는 Controller Method에서 특정 조건에 맞는 파라미터가 있을 때 원하는 값을 바인딩해 주는 인터페이스이다. Spring 공식 문서에는 아래와 같이 설명되어있다.Strategy interface for resolving method parameters into argument values in the context of a given request.주어진 요청으로부터, method의 parameter를 argument로 주입해 주는 전략 패턴의 interface Spring MVC를 작성할 때, Controller에 정의한 Method들에도 @PathVariable, @RequestPar..
[Spring] HandlerMethodArgumentResolver 사용HandlerMethodArgumentResolver 란HandlerMethodArgumentResolver는 Controller Method에서 특정 조건에 맞는 파라미터가 있을 때 원하는 값을 바인딩해 주는 인터페이스이다. Spring 공식 문서에는 아래와 같이 설명되어있다.Strategy interface for resolving method parameters into argument values in the context of a given request.주어진 요청으로부터, method의 parameter를 argument로 주입해 주는 전략 패턴의 interface Spring MVC를 작성할 때, Controller에 정의한 Method들에도 @PathVariable, @RequestPar..
2024.07.04