
저번에는 일단 DB까지 연결해 보았습니다. 그러면 이제 본격적으로 Controller, Service, Mapper까지 생성해서 통신했을 때 실제 데이터를 뿌려주는 것까지 해봅시다. 기본적으로 Spring boot의 base scan 범위를 별도로 지정하지 않았다면 *Application 파일이 있는 팩키지 아래 경로에 있는 파일들만 scan하게 됩니다. 팩키지 경로를 별도로 변경해 버리면 scan을 하지 않으니 *Application 파일이 있는 팩키지 아래로 경로를 만들도록 합시다. 물론 scan 범위를 별도로 지정해주면 경로를 바꿔도 가능합니다. 이런식으로 일단 경로를 만들어주고 차례대로 Controller 및 Service, Mapper를 만들도록 합시다. Controller와 Service는 클..

시대의 트랜드가 급박하게 변해갑니다. 특히 이 업계는 더 심한 것 같습니다. Struts부터 시작 된 Framework의 트랜드는 시간이 흘러 Spring 5.x + Spring boot 2.x까지 흘러왔습니다. Javascript는 JQuery를 지나 이제는 node, react, angular, vue가 대세를 이루고 있습니다. 설계만 하고 있는 뒷방 늟은이가 될 수 없으니 부지런히 정진할 수 밖에 없습니다. 그런 이유로 요즘 대세인 Spring boot 2.2.7로 Rest API 서버를 만들어 보도록 하겠습니다. 시작에 앞서 java 1.8에 oracle 11g로 했음을 알려드리며 java 및 DB가 준비되지 않았다면 먼저 준비를 하고 보시길 바랍니다. 일단 원할한 진행을 위해 STS를 받도록 합..
Spring framework 기반으로 Mybatis 설정 완료 후 프로시져를 통해서 리스트 값을 받아올 때 종종 Cursor is closed라는 에러가 발생하는 것을 확인할 수 있습니다. exception으로 throw하기 때문에 난감한 상황이 됩니다. 그렇다고 DB툴을 켜서 프로시져를 실행해보면 정상적으로 응답이 나오는 것을 확인할 수 있습니다. Mybatis에서는 해당 상황이 발생할 때SqlException으로 던지기 때문인 듯 한데, 이를 해결해 주려면 Cursor를 프로시져 도입부에서 무조건 Select 해주면 됩니다. 다만, 값을 내려주면 안되는 상황이고 Select를 태울 필요가 없는데 처음부터 Select가 실행되면 문제가 되기도 하니 아래와 같이 해결하시면 됩니다. 1 2 3 4 5 6..
일반적으로 Spring은 Spring 영역을 벗어나면 Component scan 범위를 벗어나므로 의존 주입을 할 수 없습니다. 본 바탕이 Spring인데 외부 API에 DB를 이용해서 데이터를 적재해야 하는데 dao(data access object)를 Autowired 할 수 없으니 따로 Util을 생성하여 거기에 DB를 적재하고자 생각했습니다. 다만, 이렇게 적용해보니 문제가 Util로 가게 되면 생성되는 Method들이 모두 static으로 선언되어 생성되는데 static 영역에는 Autowired를 사용할 수 없었습니다. 그래도 꼼수로 static 필드에 넣을 수 있는 방법이 있지 않을까 싶어서 검색해보니 역시 위대한 구글신께서 방법을 알려주셨습니다. 방법은 아래와 같습니다. 1234567891..
- Total
- Today
- Yesterday