개요 JBoss Infinispan에 대해서는 본 블로그의 이 글에서 자세히 소개한 적이 있다. 이번 글에서는 여러 캐시 라이브러리가 공존하는 복잡한 프로젝트 환경에서 JBoss Infinispan을 추가하고, Spring Cache와 JCache를 연동하는 방법을 정리하였다. Spring Cache 적용 원리 프로젝트의 @Configuration 빈의 클래스 레벨에 @EnableCaching을 명시하면, 전처리기가 활성화되어 모든 스프링 빈의 퍼블릭 메써드 레벨에 명시된 @Cacheable, @CachePut, @CacheEvict를 확인하여 캐시가 작동하게 된다. 스프링 캐시는 별도의 설정을 하지 않고 활성화할 경우, 단순히 CuncurrentHashMap 오브젝트를 캐시로 사용하게 된다. Infin..
개요 Spring Boot 생태계에서 콘솔 애플리케이션을 만드는 방법은 다양하지만, 내가 선호하는 방법을 정리하였다. (대부분은 팀 내부에서 사용하는 유틸리티 성격의 툴링이 목적이다.) build.gradle.kts 웹 애플리케이션이 아닌 한 번 실행되면 준비된 기능을 실행하고 종료되는 애플리케이션을 만들 것이기 때문에 spring-boot-starter이면 충분하다. dependencies { implementation("org.springframework.boot:spring-boot-starter") } @SpringBootApplication 클래스 작성 커맨드라인 인자를 다루면 좋겠지만 팀 내에서만 사용할 것이기에 운영체제 환경 변수 주입을 더 선호한다. import org.springframe..
개요 Univocity Parsers는 현재 Java 진영에서 가장 성능이 뛰어난 CSV 파써 라이브러리이다. 이번 글에서는 CSV 파일을 Java Bean의 목록으로 변환하는 방법을 설명하고자 한다. build.gradle.kts 프로젝트의 /build.gradle.kts에 아래 내용을 추가한다. dependencies { implementation("com.univocity:univocity-parsers:2.9.1") } CsvBean 클래스 작성 CSV 파일의 로우를 빈으로 맵핑할 CsvBean 클래스를 작성할 차례이다. import com.univocity.parsers.annotations.Parsed import java.math.BigDecimal data class FooCsvBean( ..
개요 백엔드 엔지니어 입장에서 Java에서의 날짜/시간 데이터를 데이터베이스에 저장하고 코드 레벨에서 다루기에 가장 안전한 타입은 UTC+0 오프셋으로 고정된 Instant와 이를 UTC+0으로 변환한 OffsetDateTime이다. 이번 글에서는 이 2개 클래스의 사용법을 간단히 정리하였다. Instant 현재 순간 생성 // 현재 순간을 UTC+0 기준의 timestamp 정보를 담은 Instant 객체에 저장 val instant: Instant = Instant.now() Instant to ISO 8601 String // Instant 객체를 UTC+0 으로 고정된 ISO 8601 문자열로 변환 // 2021-12-24T15:41:49.243777Z val string: String = ins..
- Total
- Today
- Yesterday
- 태그를 입력해 주세요.
- Docker
- 평속
- chrome
- JHipster
- jstl
- Spring MVC 3
- spring
- DynamoDB
- bootstrap
- 구동계
- CentOS
- kotlin
- Eclipse
- 로드 바이크
- 알뜰폰
- Spring Boot
- Kendo UI Web Grid
- maven
- node.js
- 로드바이크
- Tomcat
- Kendo UI
- java
- 자전거
- JavaScript
- jsp
- MySQL
- graylog
- jpa
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |