java 4

[java] 커스텀해서 추상화된 예외처리 하기

예외처리 또한 서비스 구현만큼 중요합니다. RuntimeException 에러를 상속받아, http 상태코드와 메세지를 전달받아 보다 명확하게 하겠습니다. 가장 익숙하고 빈번한 서비스의 예외처리인 회원가입을 진행하려고 할 경우 발생되는 존재하는 아이디에 대한 예외처리를 커스텀하겠습니다. 서비스를 만들면서 수없이 마주할 예외처리들을 넣어두기 위해 exception 패키지를 생성했습니다. 그 아래, RuntimeException을 상속받은 추상화된 예외 클래스를 만들었습니다. http 상태코드와 메세지를 담을 객체를 선언했습니다. AbstractException.java public abstract class AbstractException extends RuntimeException { abstract p..

java 2023.08.17

[java]자바 스케줄러_스레드를 다중으로 생성하여 유지하는 방법(feat.ThreadPoolTaskScheduler)

자바 스케줄러를 이용해 아래의 코드를 작성했다. 원하는 결과는 test1이 Thread.sleep으로 10초간 멈춰 있을 때, test2 메소드는 10번 실행되는 것이었다. @Scheduled(fixedDelay = 1000) public void test1() throws InterruptedException { Thread.sleep(1000); System.out.println(Thread.currentThread().getName() + " (test1) ::: " + LocalDate.now()); } @Scheduled(fixedDelay = 1000) public void test2() throws InterruptedException { System.out.println(Thread.cur..

java 2023.08.08

[java] 2차원 배열의 정렬 방법(오류_i cannot be cast to java.lang.comparable)

아래와 같이 Collections 프레임워크를 사용해 sort메서드로 2차원 배열에서 정렬을 하려고 하니, int[][] arr = new int[10][2]; Arrays.sort(arr); i cannot be cast to java.lang.comparable 해당 오류가 발생했다. 찾아보니, 2차원 배열은 2차원에서의 비교대상이 없기 때문에 이와 같은 오류가 발생하는 것이었다. 그래서 추가한 코드는 아래와 같다! Arrays.sort(arr,(o1,o2) ->{ if(o1[0] == o2[0]){ return Integer.compare(o1[1],o2[1]); }else{ return Integer.compare(o1[0],o2[0]); } }); 해설) 1차원이 동일한 경우는 2차원끼리 비교하..

java 2023.06.06

[java] java로 html 파일 생성하기(feat.자바의 환경 설정 정보 불러오기)

java로 파일을 생성해서 파일에 내용을 write하는 작업을 해보겠습니다. 파일 안의 내용은 설치된 자바의 환경의 정보를 가져와서 테이블로 키와 값을 가져와서 입력할게요! 하기의 사진처럼 html 파일이 생성되면 됩니다. 해당 html파일이 생성되기 위한 코드는 아래와 같습니다. import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { //파일 생성 File file = new File("property.html"); try{ String javaInfo = ""..

java 2023.06.06