반응형

spring 68

[spring] AOP로 트랜잭션 관리 (feat. 롤백 처리)

시니어 개발자가 초기 설정 한 프로젝트 소스를 체크아웃 받아 API 개발 중 트랜잭션 롤백 관련 삽질한 경험이다.코드를 보니 아래와 같이 공통에서 AOP를 통해 트랜잭션을 자동으로 관리하도록 설정이 되어 있었다.원인은 정말 허무했지만 나중의 삽질을 미연에 방지도록 기록한다.(원래 뭐든 알고나면 쉽지 않은가 😎)TransactionConfig package kr.test.portal.config.spring;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.annotation.Aspect;import org.springframework.aop.aspectj.AspectJExpressio..

IT/development 2024.12.01

[mybatis] parameter 값 동시 전달

목차 mybatis에 데이터 전달 시 vo의 필드와 vo안의 list 동시 전달 javascript if (confirm("저장하시겠습니까?")) { dlbrList = []; $('#tab3Body tr').each(function() { var rowData = { 'exmnSn': $(this).find('#exmnSnId').val() } dlbrList.push(rowData); }); var paramData = { cmitNo: $("#cmitNoId").val(), mtgMngNo: $("#mtgMngNoId").val(), //vo안의 list명과 일치해야 함 dlbrList: dlbrList }; $.ajax({ url: '/save.do', method: 'POST', data: JS..

IT/development 2024.03.31

[mybatis] mybatis data binding (feat. vo)

최근에 알게된 사실인데 mybatis 사용 시 select하는 컬럼명과 vo 필드가 서로 카멜케이스, 스네이크케이스로 일치할 경우 자동으로 vo에 바인딩 하기 때문에 as를 따로 주지않아도 된다.--예시 쿼리SELECT USER_NAME FROM users--예시 VO@Datapublic class User { //이렇게 컬럼명의 카멜케이스로 된 경우는 자동 바인딩됨    private String userName;   }이걸 몰라서 그동안 아래처럼 컬럼마다 전부 AS를 달았었다..이제부터 생략해야지SELECT user_name as userName     , user_id as userId     , user_email as userEmail     --....  FROM USERS 혹 컬럼명과 vo..

IT/development 2024.03.17

[tiles] UnknownHostException: tiles.apache.org 에러

목차 로컬에서는 잘 되던 소스가 운영에 반영 시 에러가 발생했고 원인을 추적결과 폐쇄망인 운영서버에서 dtd를 다운로드 할 수 없어서 에러가 난 상황이었다. 원래 소스 변경한 소스 dtd 2.1dtd를 다운 받아서 tiles.xml이 있는 경로에 위치 시켰고 로컬 경로를 잡아줬는데 계속 인식을 못하다가 버전을 3.0으로 올렸더니 되었다.(솔직히 얻어 걸린 듯 하다.) okky에서 참조했다.(3.0은 로컬에 있는 dtd파일을 우선 찾은 후 없으면 다운로드하는 원리라고 설명 되어 있는데 확실히 확인을 아직 해 본 것은 아니다.) reference: https://okky.kr/questions/435576 OKKY - Tiles 인터넷 연결 안될때 dtd 못 불러오는 문제 문의 열심히 구글링 한 결과 답을 ..

IT/development 2024.02.06

[spring] jUnit test 시 vm 옵션 전달 (feat. maven)

애플리케이션 구동 시 profile을 전달 할 경우 jUnit에서도 전달을 해줘야 하는데 아래처럼 설정하면 된다. 기존 설정들은 이미 되어 있는것이라 이 포스팅의 내용인 jUnit test 시 vm 옵션 전달하는 건 이 부분만 설정하면 된다. -Dglobals.profiles.active=local org.apache.maven.plugins maven-surefire-plugin 2.22.2 true once xml **/Abstract*.java **/*Suite.java **/*Test.java -Dglobals.profiles.active=local org.codehaus.mojo emma-maven-plugin true org.apache.maven.plugins maven-javadoc-plu..

IT/development 2024.01.21

[spring] spring excel download 모듈화 ver 2

목차 아래 포스팅에서 이어진 내용입니다. [spring] spring excel download (feat. 공통으로 분리) 목차 아래 포스팅에서 이어진 내용입니다. [spring] spring excel download (feat. 체크박스) 목차 화면에서 사용자가 체크한 row의 데이터들만 서버로 보내서 엑셀 다운로드 창을 브라우저에게 띄우게 하 yaga.tistory.com 모듈화 ver 1에서는 화면이 늘어나고 구분자가 늘어남에 따라 ExcelUtil의 static method가 길어진다는 단점이 있어서 불편했다. 그래서 더 고민 끝에 구분자에 따른 시트명, 파일명, 헤더정보를 별도의 파일로 빼기로 했다. 이렇게 되면 파일에 내용만 추가하면 되고 소스는 건드릴 필요가 없게된다. pages.json..

IT/development 2024.01.14

[spring] spring excel download 모듈화 ver 1

목차 아래 포스팅에서 이어진 내용입니다. [spring] spring excel download (feat. 체크박스) 목차 화면에서 사용자가 체크한 row의 데이터들만 서버로 보내서 엑셀 다운로드 창을 브라우저에게 띄우게 하고 엑셀 다운로드 하는 로직 springBoot 2.7.7, jdk 11 version view 엑셀 다운로드 예제 목록 yaga.tistory.com 프로젝트 팀원들이 내가 만든 엑셀 모듈을 그냥 화면에서 호출만 하고 나머지는 신경쓰게 하고 싶지 않았다. 호출하는 쪽에서는 모듈이 어떻게 작동하는지 모르게 만드는 것, 나는 알맞은 조건으로 호출만 하면 되는 것 그래서 고민 끝에 일단 무식하게 아래와 같이 구현했다.(보완 사항이 많은 소스임) 화면에서는 공통 엑셀 컨트롤러의 url 호..

IT/development 2024.01.14

[spring] spring excel download (feat. 체크박스)

목차 화면에서 사용자가 체크한 row의 데이터들만 서버로 보내서 엑셀 다운로드 창을 브라우저에게 띄우게 하고 엑셀 다운로드 하는 로직 springBoot 2.7.7, jdk 11 version view 엑셀 다운로드 예제 목록 체크박스 순번 사원명 직업 kkh 김경호 가수 ljb 박완규 가수 jkh 정경화 가수 엑셀 다운로드 의존성(gradle) // poi implementation 'org.apache.poi:poi:5.1.0'// xls implementation 'org.apache.poi:poi-ooxml:5.1.0'//xlsx Controller(VO버전) 본래 컨트롤러에는 비즈니스 로직이 없어야 하지만 여기선 예시니까 비즈니스 로직 서비스로 빼지 않았다.(귀찮아서) @GetMapping("/..

IT/development 2024.01.13
반응형