반응형 SpringFramework | SpringBoot32 Properties에 디비 관련 설정[개발,운영] 프로젝트 설정시 데이터베이스 url 등의 정보들을 application.properties에 작성하게되는데, 개발용 운영용을 따로 작성하여도 되지만, url=local.db.com username=local_user password=local_pw #--- spring.config.activate.on-profile=dev url=dev.db.com username=dev_user password=dev_pw #--- spring.config.activate.on-profile=prod url=prod.db.com username=prod_user password=prod_pw 위와 같이 작성하면 #--- 기준으로 다른 파일로 인식하게되며, profile이 작성되지않은 맨위의 내용이 디폴트 값이고, 프로.. 2023. 11. 9. MyBatis에서 mapper.xml 재기동 없이 반영하기. MyBatis에서 mapper.xml 재기동 없이 반영하기. RefreshableSqlSessionFactoryBean.java import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.locks.Lock.. 2023. 11. 8. Map vs VO VO에 getter, setter를 쓰는 경우 변수에 새로운 값을 할당할 때마다 validation(유효성 검사) 검사 가능 lazy loading(지연 로딩) 가능 public, private 등의 접근제어자를 사용하여 읽기와 쓰기의 권한을 다르게 설정 가능 Map vs VO Map 사용 시 장점 - 개발 시 권장사항이 select 시에는 Map을 사용하여야 하는 경우 Map을 권장한다. select를 사용하는 경우는 보통 2개 이상의 테이블을 조인하여 조회하는 경우가 많아 VO로 표현이 불가능한것은 아니나 복잡하기 때문에 Map을 사용한다. 단점 Map의 key 또는 value가 null인 경우 Map은 해당 필드 자체를 key로 가져가지 않는다. 따라서 쿼리 수행 시, key 값 자체가 존재하지 않.. 2023. 11. 8. HttpURLConnection[GET,POST] HttpURLConnection 을 사용할때 GET 방식과 POST방식이 있으며, URL파라미터[ 쿼리스트링 형식 ]로 GET 방식에 파라미터를 담아 넘길 수 있다. 하지만 현 상황은 약 6천개의 시퀀스를 넘겨야하는 상황이기에 GET방식은 알맞지 않았고 POST방식으로 아래와 같이 넘겨서 해결하였다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.Charset; import ja.. 2023. 11. 8. fixedRate & fixedDelay_SpringScheduled Spring_Scheduled @Scheduled(fixedRate = 1000) @Scheduled(fixedDelay = 1000) Scheduled Annotation 선언시 위와같이 fixedDelay 또는 fixedRate 옵션을 사용할 수 있으며, 1000은 ms를 뜻한다. 둘의 대표적인 차이점은 fixedDelay는 해당 작업이 끝난 시점부터 시간을 세고, fixedRate는 해당 작업의 시작 시점부터 시간을 센다. 그렇기에 fixedRate일 경우에 작업의 수행시간이 길어지거나 짧아지는 변동이 있다면, 적절한 주기의 실행을 보장하지 못하므로 그때그때 상황에 잘 맞게 사용하여야한다. 2023. 11. 7. MessageCodesResolver MessageCodesResolver 검증 오류 코드로 메시지 코드들을 생성한다. 객체 오류의 경우 다음 순서로 2가지 생성 1.: code + "." + object name 2.: code 예) 오류 코드: required, object name: item 1.: required.item 2.: required //messageCode = required.item //messageCode = required 필드 오류의 경우 다음 순서로4가지 메시지 코드 생성 1.: code + "." + object name + "." + field 2.: code + "." + field 3.: code + "." + field type 4.: code 예) 오류 코드: typeMismatch, object na.. 2023. 11. 7. 이전 1 2 3 4 5 6 다음 반응형