본문 바로가기

전체 글

[JAVA]Reference Type Cache 기능 Integer,Long,Double 등의 Reference Type에는 자체적으로 값에 대한 캐싱 기능이 지원됨 String 타입은 좀 다름. 타입별로 최소값, 최대값이 설정되어 있음 @IntrinsicCandidate public static Integer valueOf(int i) { if (i >= IntegerCache.low && i 더보기
Java는 왜 Call By Value인가? 작성 전 우선 Java는 모두 다 Call By Value가 맞다.(개인 의견이 아닌, Java 언어의 창시자 제임스 고슬링이 Java 언어를 개발할 때 Call By Value만 참고하였다고 한다 하지만 “아무도 믿지마” 라는 마음가짐으로 작성하였습니다.\ http://fredosaurus.com/JavaBasics/methods/method-commentary/methcom-20-passby.html 알아두어야 할 지식 Primitive Type stack 영역에 변수 값 저장 Reference Type heap 영역에 저장된 오브젝트의 메모리 주소를 stack 영역에 저장 작동 방식 Primitive Type을 매개변수로 전달할 때 main 메소드에서 modify(x,y) 메소드호출 시. publi.. 더보기
[Spring]외장톰캣 특정 war 미로드 개발환경 Tomcat10 (외장톰캣) Spring 2.x.x jdk 17 이슈사항 Tomcat10 환경에서 특정 War가 로드 되지 않는현상 URL관련 프로젝트(SpringBoot2.x.x)이 로드되지않음. 문제점 Spring Boot 2.x.x 는 Tomcat9 까지 지원 https://stackoverflow.com/questions/67525200/why-is-upgrading-to-tomcat-10-0-5-causing-spring-boot-to-shutdown-after-boot Why is upgrading to Tomcat 10.0.5 causing spring boot to shutdown after boot? I have a spring boot project and I am trying.. 더보기
[Spring]PageRequest이용한 페이징처리 참고 URL 공식문서 Spring Doc PageRequest Custom PageRequestCustom Test Repository [GithubRepo] (https://github.com/lso5507/demo-pageable) 필요이유 페이징 기능이 필요할때 Page관련 모델을 생성 후에 사용자가 관리해줘야 함. 장점 page,Size,sort 등의 Parameter정보를 제공하면 봉투패턴으로 page정보와 Content정보를 전달해줌 단점 데이터에 대한 추가가공이 필요할 경우에 pageImpl 클래스를 상속받아 작업해야함 DataInit Controller package com.example.demopageable; import org.springframework.beans.factory.an.. 더보기
[QueryDSL]Q Class Import 불가 이슈사항 QueryDSL의 QClass는 다음과 같이 정상적으로 생성되었으나, Import 되지 않는 문제 다음과 같은 설정창에서 QClass가 들어있는 Sources 폴더를 Source로 등록하여야함(폴더 오른쪽클릭) File - Project Structure - MainProject명 클릭 더보기
[Spring] MyBatis Mapper Bean NotFound 이슈사항 해당 환경에서 Spring Mybatis v3 사용 시 Mapper Bean파일을 찾을 수 없습니다. 관련 build.gradle 해결방식 Mybatis Starer팩 버전을 v2 으로 다운그레이드함 // https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter implementation group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '2.3.1' 원인분석 실제로 Mybatis Interface를 구현하여 @Mapper 어노테이션을 삽입하면 Spring 에서 프록시 기능을 이용해 Mybatis 구현체를 .. 더보기
[Spring]SecurityContextHolder란? SecurityContextHolder란? 기본적으로 ThreadLocal을 사용 한 쓰레드 내에서 사용하는 공용 저장소 쓰레드 내에서 Application을 공유 할수있다. SecurityContextHolder를 사용 쓰레드가 달라지면 제대로 된 인증 정보를 가져올 수 없음 SecurityContextHodler는 싱글톤 객체 SecurityContextHolder가 로드 될 때 한번 호출됩니다 static { initialize(); } 해당 initialize 메소드에서 SecucirtyContextHolder에 대한 전략 방식을 파악 private static void initialize() { if (!StringUtils.hasText(strategyName)) { strategyName =.. 더보기
[SpringBoot]SpringBoot 3.x.x War 배포에러 SpringBoot 3.x.x War 배포 문제 해결 방법 Tomcat9 버전에서 SpringBoot3 War 배포시 정상적으로 Spring이 로드되지 않습니다. 문제 상황 SpringBoot 3.x.x 버전에서 War 파일로 빌드한 프로젝트를 배포하면, SpringBoot가 로드되지 않습니다. 원인 분석 SpringBoot 3.x.x 버전부터는 Tomcat10이상의 버전부터 호환이 가능합니다. 참고사이트 What's New in Spring Framework 6.x 해결 방법 Tomcat10 버전을 적용하여 SpringBoot 3.x.x 프로젝트를 배포합니다. 결론 기존 javax.x 라이브러리도 jakarta로 변경되었습니다. • Migration from javax to jakarta namespa.. 더보기