들어가며 일정 주기마다 DB를 체크해 에러가 나면 문자로 알려주는 모니터링 시스템을 구현하게 되었다. 이전에 @Scheduled + cron 표현식을 활용해 정해진 시간마다 데이터를 주고 받는 로직은 운영해본적이 있지만, 직접 구현은 처음이라 여러가지 방법을 모색해봤다. 1) 오라클 Job : 잡을 등록하고 DB에서는 주기마다 데이터를 처리하겠지만, 이상이 생기면 자바에서 이를 인지하고 메시지를 날릴 수 있을지가 의문이었다. 그래서 일단 패스! 2) Quartz(쿼츠) : 외부 인터넷은 접속이 안되고 xml에 추가하려면 꽤나 복잡한 프로젝트여서 이것도 논외! 3) ThreadPoolTaskScheduler (동적 스케줄링) : Bean만 활용하면 되서 어노테이션으로 충분히 커버가 가능하다고 생각했고, 찾..
@PostConstruct : 의존성 주입 이후 초기화를 수행한다. 1 2 3 4 5 6 7 8 @PostConstruct public void start() { List scheduleList = sqlSession.selectList("com.test.mapper.scheduleList"); for(ScheduleVO scheduleVO : scheduleList) { schedulerService.startScheduler(scheduleVO); } } http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter WAS가 실행될 때, 스케줄 리스트를 불..
123 @Transactional(value="txManager", propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public void testBatch throws Exception {Colored by Color Scriptercs @Transactional은 뭘까트랜잭션은 DB 공부할 때 본거 같은데 형이 거기서 왜 나와?? 스프링에서 트랜잭션 처리까지 간편하게 해주도록 지원해주나보다.까면 깔수록 뭐 편리한게 나온다. 신기방기 하나씩 보면,value = "txManager" : 사용할 트랜잭션 관리자를 선택propagation = Propagation.REQUIRED : 기존 트랜잭션이 있으면 그거 실행, 없으면 새로운 트랜잭..
1234567// @Scheduled(fixedDelayString="6000", initialDelayString="6000") @Scheduled(cron = "0 8/10 * * * *") private void testBatch() throws Exception { testService.testSend(); testService.testBatch(); }Colored by Color Scriptercs 소스를 하나씩 뜯어보다가 야생의 @Scheduled를 발견했다.해당 소스를 기준으로 최대한 간략하게 써보자면,@Scheduled는 말그대로 스케줄러다.스케줄을 세워서 주기적으로 메소드를 실행하게 만들어 주는 유용한 어노테이션!!!주기적으로 체크하거나 업데이트 해야하는 것들이 있을 때 쓰면 아주 유용..
제목은 이렇게 지었지만 사용법은 여기에 잘 나와있고 검색하면 팍팍 나오기 때문에 패스!매퍼에서의 foreach는 보통 WHERE ... IN ... 구문과 많이 쓰이는 듯 싶다.오늘 하루 삽질했던 내용을 기록해야겠다. 1234567891011SELECT ITEM_NO, ITEM_NMFROM PRODUCTWHERE 1=1 AND MARKET IN #{item.value} Colored by Color Scriptercs XML에서 대충 이렇게 작성해놓고 돌렸는데 자꾸 실행이 안된다.XML은 디버깅도 어떻게 하는지 몰라서 의심가는 곳에서 부분 부분 지워가면서 돌려본 결과!if문 부터 안들어갔다... 일반 VO와 같이 빈칸 체크 or 널 값 체크를 해서 if문 인식을 못했던 것! 1234567891011SEL..
Mybatis의 mapper.xml에서 반복되는 쿼리가 여러개라면 묶어서 처리하는게 코드를 보다 간결하게 해준다.사용법은 일반 include문 사용하듯이 쓰면 된다! 123456789101112131415161718 and EMP_NM = "jay" select * from EMP 10 ]]> Colored by Color Scriptercs 'sql id = ... 로 지정한 쿼리를 원하는 곳에 include refid를 사용해 넣으면 끝!
getter and setter를 만드는건 쉽다.123456789101112131415public class UserVO { private String userId; private String userNm; public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getUserNm() { return userNmId; } public void setUserNm(String userNm) { this.userNm = userNm; }Colored by Color Scriptercs1. 직접 get / set 타이핑.2. 마우스 우클릭 → Sourc..
- Total
- Today
- Yesterday
- K번째수
- cgv
- 카카오인턴
- Spring
- 타겟 넘버
- 문자열 내 마음대로 정렬하기
- 스프링 부트
- 다음 맵 api
- 완주하지 못한 선수
- java
- API
- 파이팅코리아
- FrogJmp
- 프로그래머스
- 안드로이드 스튜디오
- codility
- 124 나라의 숫자
- 자바
- 기능개발
- 쇠막대기
- 맵 api
- 텔레그램
- 노션트렐로광고X
- 객체지향과 디자인패턴
- 예매 알림
- 알고리즘
- AWS
- 더 나은 내일
- 최솟값
- json
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |