Lang 28

Quartz 간단하게 사용법

version: quartz-2.3.2 다양한 방법이 있어서 종합 SimpleTrigger, CronTrigger 등록 방법 Job이 실행되는 주기 동시성 다음 작업 시간 확인 지난 Job 삭제 파라미터 넘기기 등 추가필요 Job 중지 package javaTest; import java.util.Date; import org.quartz.CronExpression; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; import org.quartz.JobBuilder; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.Scheduler; imp..

Lang/Java 2023.02.18

Java ArrayList, Map multiThread

읽기만 하면 Thread safe하나 수정하면 문제 발생 그래도 multi thread환경에서는 안 쓰는 편이 낫다고 한다. ArrayList, HashMap Thread safe 읽기, 쓰기 가능 CopyOnWriteArrayList, SynchronizedList ConcurrentHashMap, SynchronizedMap Thread safe 읽기만 가능 대신 원본에 접근가능하면 원본은 수정할 수 있음 unmodifiableMap unmodifiableList Google Guava 불변 immutablemap immutablelist JAVA 9 불변 list.of() unmodifiablemap vs immutablemap https://stackoverflow.com/questions/226..

Lang/Java 2023.02.12

STS thymeleaf 자동 완성 안 될 때

https://stackoverflow.com/questions/55879751/thymeleaf-content-assistant-not-working-with-spring-boot 4.13.0.RELEASE JDK 8 thymeleaf-spring5-3.0.15.RELEASE.jar org.springframework.boot 2.7.6-SNAPSHOT STS ini 파일에 --add-opens=java.base/java.lang=ALL-UNNAMED 추가 하는 방법으로 처리 다른 방법으로도 안 되는 경우 .. 원인은 모르겠음 Thymeleaf content assistant not working with Spring Boot The thymeleaf content assist is not workin..

Lang/Java 2022.11.20

TEdit SelectAll 동시 컨트롤

Procecure TForm1.SelectAllControl(Sender : TObject) if ActiveControl is TEdit then TEdit(ActiveControl).SelectAll; TEdit 다 선택 후 onclick 이벤트에 넣기 is는 비교 as는 변환 정도.. Sender와 ActiveControl은 여기서는 같은듯 아래 두개도 같은듯 (Sender as TEdit).SelectAll; TEdit(Sender).SelectAll; 조금더 정보가 필요 전체폼에서 한번에 컨트롤할수 있는것도 필요 출처: https://pitroom.tistory.com/3 [Room:티스토리]

Lang/Delphi 2022.08.27

PostMessage로 자기자신 호출하기

문제점 : Form에서 Showmodal로 화면을 열었을시 Statusbar 컨트롤이 안됨 상단 선언 const MY_MESSAGE = WM_USER + 101; 타폼에서 사용시 동일하게 적어주면 됨 자기 자신 호출(Formshow에서) 마지막은 integer로 PostMessage(Handle, MY_MESSAGE, 0, 1); procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE; procedure Form1.MessageReceiver(var msg: TMessage); var itest : integer; begin itest := msg.lParam; end; itest ->> 1 출처: https://pitroom.tistory.c..

Lang/Delphi 2022.08.27

Free/nill/Destroy

TObject.Free 동적으로 생성한 오브젝트를 Free하면, 해당 객체에 할당되어 있던 메모리 공간을 OS로 돌려주게 된다. 그러나 오브젝트 변수가 가리키고 있던 포인터 값에는 여전히 기존 메모리의 주소가 존재하므로Nil을 할당하여야 포인터 값을 초기화 시킬 수 있다. 만약 Free한 오브젝트를 다시 사용하기 위해서는 Nil을 꼭 할당한 후, 다시 Create를 해야 한다. Object := TObject.Create; Object.Free; Object := Nil; TObject.FreeAndNil 동적으로 생성한 객체에 할당되어 있던 메모리 공간을 OS로 돌려주는 동시에 객체의 변수가 가리키고 있던 포인터의 값까지 초기화 해준다. Object := TObject.Create; FreeAndNil..

Lang/Delphi 2022.08.27