728x90 SMALL JAVA/Java74 자원관리 시 conn.close()와 try-with-resources 구문의 차이점 conn.close()와 try-with-resources 구문은 자원 관리에 사용된다 하지만 작동 방식에 차이가 있다고한다 conn.close() conn.close()는 명시적으로 데이터베이스 연결과 같은 자원을 해제하는 데 사용된다 이건 개발자가 직접 자원을 해제하는 책임을 지게한다... 책임지기 싫어.... 그리고 주로 finally 블록 내에서 호출된다 장점이라는 것은 딱히 없고 finally 블록이 없거나 예외 처리가 잘못되면 자원이 제대로 해제되지 않을 수 있어 리소스 누수가 발생할 가능성이 있다는 단점만이 존재... Connection conn = null; try { conn = dataSource.getConnection(); // 연결 } catch (SQLException e) { .. 2023. 10. 31. maven 설치 및 환경변수 설정 apache-maven을 설치해준다 바이너리 zip파일로 설치해주겠다 그럼 새 사용자 변수를 생성해줘야겠죠 MAVEN_HOME으로 경로를 잡아준다 세스템 변수의 path에서 maven경로를 새로만들어준다 여기는 bin까지 포함한 경로 mvn -v 쳐서 버전 잘 나오면 설정 완! 2023. 6. 30. slf4j.Logger 라이브러리를 통해 logger기록하기 java에서 가장 편하게 데이터가 잘 들어오는지 확인하는 방법은 아마도 콘솔창에 찍어보는 것일거다 System.out.println("여기 오나?"); System.out.println("data : " + data); 이런 작업은 개발자라면 무조건 해봤을 것이고 사실 가장 간단한 방법이긴 하다. 근데 이제 콘솔창에서 찍어보고 테스트가 완료가 됐다면 쓸데없는 출력은 다 삭제하고 데이터가 잘 들어오거나, 경로이동확인이 필요할 경우에는 콘솔에 계속 찍혀있는 것이 편할 것이다 근데 이런식으로 콘솔창에 계속 찍어놓으면 나중되면 이게 어디서 찍혔는지 어떤 데이터인지 확인하기도 힘들고 공동작업을 하다보면 내 코드가 아니니까 지우기도 애매해져서 계속 쌓이게 될 것이다 정확하고 효율적인 로그를 위해 로깅라이브러리를 사.. 2023. 6. 23. [websocket]스프링 웹소켓을 이용한 클라이언트 서버 양방향 통신, url을 통해 websocket서버로 보내기, url을 통한 실시간 소켓알람 1. websocket 넣기 websocket을 pom.xml dependency에 등록해준다 org.springframework spring-websocket ${spring.maven.artifact.version} 버전은 스프링 버전에 맞춰줬다. 그게 아니면 스프링 버전에 맞게 4.3.15 이런식으로 써줘도 된다 변수를 쓰기 위해서는 properties에서 등록해놓고 쓰면 된다. 가끔 바뀔 수도 있으니 이렇게 한 번에 바꿀 수 있도록 설정해놓는 것이 좋다 4.3.25.RELEASE 3.10.0 2. WebConfig등록 import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.co.. 2023. 6. 14. java다운로드, 시스템 환경변수 설정, java 버전 확인 https://github.com/ojdkbuild/ojdkbuild/releases/tag/java-1.8.0-openjdk-1.8.0.332-1.b09-x86 Release java-1.8.0-openjdk-1.8.0.332-1.b09-x86 · ojdkbuild/ojdkbuild java-1.8.0-openjdk-1.8.0.332-1.b09-x86 revert JDK-8285445, jfx update github.com 위 링크들어가서 다운받아주면됨 나는 java1.8.0 ..zip파일로 받아주겠음 다운로드받았으면 압축풀고 C드라이브아래에 넣어줌 나는 다음 경로에 넣었음 C:\Users\Administrator\java-1.8.0 그다음 환경변수편집을 해줘야함 1.시스템 변수에서 JAVA_HOME.. 2023. 3. 29. session과 Httpsessionlistener 로그아웃되는 시점과 세션종료에 대해 확인해보면서 많은 것을 배울 수 있었다. 일단 session은 브라우저가 켜지는 순간 생성된다 따라서 시스템에서 session을 컨트롤하기위해서는 session에 어떤 객체를 추가하고 그 객체가 있느냐 없느냐, 그 객체의 키값을 업데이트하느냐, 삭제하느냐로 해야한다 그래서 일단 세션이 언제 생성되고 만료되는지 확인을 하면서 세션이 생성될 때 어떤 이벤트를 하고 싶었다. 그래서 찾은게 Httpsessionlistener! WebListener라는 annotation을 붙혀서 사용하거나 web.xml에 태그추가해서 사용하면 된다 session이 생성 및 삭제 이벤트가 있을 때 httpsessionlistener을 통해 아래와 같이 그 시점을 확인할 수 있음 @WebList.. 2022. 10. 25. [Spring] cron으로 스케쥴링 구현하기 스케줄러 service를 하나 만들어주자 package business.com.api; import org.springframework.stereotype.Service; @Service public class SchedulerService { public void scheduleRun(){ System.out.println("조금 떨린다..."); } } 나는 context-scheduler.xml를 하나 만들어서 이 안에 cron설정을 했다 package business.com.api; //추가// import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; @Servic.. 2022. 8. 9. web.xml의 element(context-param,filter) 서버로 요청이 들어왔을 때 표시할 welcome-file을 순서대로 정의하는 부분 index.jsp가 없다면 index2.jsp로 넘어감 index.jsp index2.jsp error code 혹은 exception type을 error page로 매핑하기 위한 부분 error-code: 웹의 에러 코드를 적어주는 변수 exception-type: java exception type을 적어주는 변수 location: 매핑할 페이지의 경로를 적는 변수 java.lang.Throwable /error/404 404 /error/404 Servlet context의 parameter를 선언해주는 부분 param-name: context parameter의 이름 param-value: context param.. 2022. 8. 9. java list<map<string,object>>에서 키값 value값 찾기 대략 이런 list 구조가 있다고 했을 때 여기서 키, value 값 가져오는 방법 List list = devService.selectDevData(paramMap); import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; //.. for(int i = 0; i < list.size(); i++){ .. 2022. 5. 24. java list에서 key값 뽑기, list를 map으로 만들기 //쿼리를 통해 list 조회 List devList = devService.selectDevList(param); //list 2022. 5. 24. 이전 1 2 3 4 ··· 8 다음 728x90 LIST