본문 바로가기
반응형

분류 전체보기34

[Spring] mapStruct에서 LocalDateTime을 epoch Milli로 변경하는 방법 @Mapper(componentModel = "spring") public interface TestMapper extends EntityMapper { TestMapper MAPPER = Mappers.getMapper(TestMapper.class); default Long map(LocalDateTime localDateTime) { return localDateTime != null ? localDateTime.toInstant(ZoneOffset.of("+09:00")).toEpochMilli() : null; } @Override @Mappings({ @Mapping(source = "insertDt", target = "insertMilli", qualifiedByName = "toLong".. 2023. 3. 24.
[Spring] 조회메서드에 @Transactional(readOnly=true)를 사용해야하는 이유 일반적으로 데이터베이스 트랜잭션은 읽기 또는 쓰기 작업 중 하나 이상을 수행합니다. 트랜잭션이 쓰기 작업을 수행할 때는 데이터베이스에서 일관된 상태를 유지하기 위해 여러 작업이 순차적으로 실행되어야 합니다. 따라서 트랜잭션 범위 내에서 작업이 완료될 때까지 다른 트랜잭션에서 해당 데이터에 대한 읽기 작업이 차단됩니다. 이러한 이유로 읽기 작업이 많은 메서드에서 트랜잭션을 읽기 전용으로 설정하면, 해당 메서드에서는 트랜잭션을 시작하지만 쓰기 작업이 수행되지 않으므로 여러 트랜잭션에서 동시에 데이터를 읽을 수 있습니다. @Transactional(readOnly=true)를 사용하면 Spring은 트랜잭션을 읽기 전용으로 설정하여 데이터베이스에서 읽기 작업을 수행하는 동안 다른 트랜잭션에 영향을 미치지 않도.. 2023. 3. 23.
[JAVA] JAVA에서 윈도우, 우분투 NTP 서버 설정 변경하는 방법 자바코드에서 NTP 서버 정보를 전달하는 방법에 대해 알아보겠습니다. 윈도우, 우분투 모두 Runtime을 이용하여 구현합니다. 다만 OS마다 명령어나 설정방법이 다르기 때문에 아래 코드를 참고해주세요. 윈도우 private void addNTPServer(String serverAddress) throws IOException { try { String command = "w32tm.exe /config /manualpeerlist:" + serverAddress + " /syncfromflags:manual /reliable:yes /update"; Process process = Runtime.getRuntime().exec("cmd /c " + command); process.waitFor(); .. 2023. 3. 22.
[Spring] Springdoc Swagger 그룹, 정렬, 카테고리 접기 springdoc을 이용한 swagger의 정렬하는 방법과 첫화면에서 카테고리 접는 방법을 알아보겠습니다. 해당 기능은 springdoc의 설정으로 간단하게 처리할수 있습니다 spring-doc: swagger-ui: tags-sorter: alpha operations-sorter : method doc-expansion : none 위와 같이 tags 정렬을 이름순으로 하고 operation 정렬을 method로 doc-expansion은 기본 펼침으로 되어 있지만 none으로 설정하여 카테고리가 접힌상태로 로드되도록 설정할 수 있습니다. 카테고리가 접힌상태라 하더라도 api 숫자가 많으면 스크롤이 많이 늘어날텐데요. 이문제를 해결하기 위해 group 기능을 사용할 수 있습니다 아래코드를 spring.. 2023. 3. 21.
반응형