본문 바로가기

spring

(6)
[Spring] Transaction PROPAGATION.REQUIRES_NEW 의 '독립'이란 의미? 결론부터 말하자면, 스프링 트랜잭션중에 하나인 Requires_new 의 트랜잭션 스레드는 독립적이지 않다. 스프링 트랜잭션의 독립이란 물리적인것이 아닌 논리적 독립을 의미할 것이다. 아래 테스트 코드를 살펴보자. OuterClass에서 addItem() 에서 InnerService의 addCount()를 호출하고 addCount() 는 REQUIRES_NEW 의 속성을 갖는다. 새로운 독립적인 트랜잭션을 갖는다면 새로운 스레드를 생성하는것이 아닐까 착각할 수 있지만 아래와 같이 같은 쓰레드 값을 가진다. 그래서 만약, 아래처럼 InnerClass 에서 Exception 이 발생한다면 Propagation.REQUIRES_NEW 의 속성을 가졌다고 하더라도 아래처럼 outerService로 InnerCl..
[토비의 스프링 3.1] 3장 - 템플릿/콜백의 응용 [토비의 스프링 3.1] 3장에 정리된 내용. 중복된 코드를 고민하고 이를 템플릿/ 콜백 패턴을 통해 해결하는 과정이 순차적으로 정리되어 있다. 비슷한 코드를 실무에서 어떻게 고민하고 해결해야 할지 참고하여 적용해 볼 수 있을것 같다. 익숙해 질때까지 보고 또 보면 좋을 것 같아 정리해 둔다. 스프링을 사용하는 개발자라면 당연히 스프링이 제공하는 템플릿/콜백기능을 잘 사용할 수 있어야 한다. 동시에 팀플릿/콜백이 내장된 것을 원리도 알지 못한채로 기계적으로 사용하는 경우와 적용된 패턴을 이해하고 사용하는 경우는 큰 차이가 있다. 고정된 작업 흐름을 갖고 있으면서 여기저기서 자주 반복되는 코드가 있다면 중복되는 코드를 분리할 방법을 생각해보는 습관을 기르자. 중복된 코드는 먼저 메소드로 분리하는 간단한 시..
[REDIS] Generic Redis Template 사용하기 https://stackoverflow.com/questions/23208010/drying-up-a-generic-redistemplate-in-spring-4 DRYing up a generic RedisTemplate in Spring 4 I've read that you can have @Autowired generics as of Spring 4, which is awesome. I have an abstract RedisService class in which I want to have @Autowired a generic RestTemplate, like so: public stackoverflow.com 코드는 아래. Redis 의 hash operation 에만 사용된다 @Componen..
Quartz Tutorials 정리(중) 1. Quartz Main Component and Example Scheduler - the main API for interacting with the scheduler Job - 스케줄러에 의해 실행되는 컴포넌트들을 구현한 인터페이스 JobDetail - Job 의 인스턴스를 생성 Trigger - 잡의 실행(스케줄링)에 관해 정의 JobBuilder - job 인스턴스를 생성하는 JobDetail 의 인스턴스를 생성 정의 TriggerBuilder - 트리거를 생성 정의 - Scheduler는 SchedulerFactory 에 의해서 생성된다. - 생성된 Scheduler에 의해서 Job 과 트리거가 추가 되고 삭제 될 수 있다. SchedulerFactory schedulerFactory = n..
[Spring Batch] 잡 관리 컴포넌트 - 1. JobExplorer JobExplorer - org.springframework.batch.core.explore.JobExplorer https://docs.spring.io/spring-batch/docs/current/api/org/springframework/batch/core/explore/JobExplorer.html JobExplorer (Spring Batch 4.3.3 API) All Known Implementing Classes: SimpleJobExplorer public interface JobExplorer Entry point for browsing executions of running or historical jobs and steps. Since the data may be re-hydrat..
[Spring Boot 실행 오류]The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured. The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured. 8080 포트가 이미 실행 중이라는 의미, 직접 사용 중인 포트의 프로세스를 중단해줘야 한다. 방법이 두가지 있다. 방법1) 오른쪽 상단에 빨간 네모를 눌러 포트를 중단시킨다. 방법2) 안된다면 cmd 에서 직접 중단 시킨다. 1. cmd 실행 2. 아래 입력 netstat -ano | findstr 8080 - 8080에서 사용중인 프로세스 번호를 확인한다. 내 경우는 33608 taskkill /f /pid 33608 - taskkill 을 이용하여 ..