Sangil's blog

https://github.com/ChoiSangIl Admin

spring 3.x @Async (비동기) 설정방법 DEV / WEB

2021-05-06 posted by sang12


1. 사용법

- @EnableAsync 어노테이션 추가(안하면 비동기 호출이 안먹힘)

@Service("service")
@EnableAsync 
public class ServieImpl implements Service {
}

- @Async 어노테이션 추가 및 서비스 구현체 함수 생성

@Service("service")
@EnableAsync 
public class ServieImpl implements Service {
@Async
public void asyncTest() {
try {
Thread.sleep(5000);
System.out.println("####################" + Thread.currentThread().getId());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

-Controller 에서 비동기 함수 호출

@Controller("restful")
public class Restful{
@RequestMapping("/asyncTest")
public @ResponseBody void asyncTest(final @RequestBody Map<String, Object> parameterMap) {
TransferObject transferObject = new TransferObject();

try {
System.out.println("@@@@@@@@@@@@@@@@@@@@@@"+Thread.currentThread().getId());
SettlementService.asyncTest();
System.out.println("!!!!!!!!!!!!!!!!!!!!!!");
} catch (RuntimeException e) {

}
}
}

-출력 결과 

@@@@@@@@@@@@@@@@@@@@@@44
!!!!!!!!!!!!!!!!!!!!!!
####################45

-> Thread id가 다른걸 확인할 수 있다.

REPLY

vue axios timeout exception 오류코드 DEV / WEB

2021-02-19 posted by sang12


뷰에서 axios를 사용할때 timeout을 걸 수 있는데, 타임아웃 오류를 잡는 방법은 다음과 같다. 

        switcherror.code ){
            case 'ECONNABORTED':
                //alert("검색시간을 초과하였습니다.");
                console.log("timeout exception");
            break;
        }

ECONNABORTED <-- 란 코드로 잡으면 된다~

REPLY

npm run build Module not found: Error: Can't resolve DEV / WEB

2021-01-07 posted by sang12


도대체가... 윈도우에서 VUE 프로젝트를 npm run build로 빌드하면, 배포가 정상적으로 dist에 폴더에 되는데, 해당 프로젝트를 리눅스에서 clone에서 가져와서 배포하면 아래와 같은 오류가 쏟아진다.....

ERROR in ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/layout/index.vue Module not found: Error: Can't resolve '@/components/Loadinglayer' in 

해당현상의 원인은........ 대소문자다... 윈도우에서는 대소문자가 틀려도 상관없이 빌드가 되는 반면에 리눅스에서는 대소문자가 틀리면 위처럼 모듈을 찾을 수가 없다고 뜬다.. 

EX)
Vue 파일은  LoadingLayer.vue 생성되어있다고 가정 했을때 아래와 같이 사용하면
import LoadingLayer from '@/components/Loadinglayer'
윈도우에서는 정상적으로 되는데 리눅스에서는 오류가납니다... 

처음에는 webpack에 '@' alias의 path가 잘못됐다고 생각했다가 한참을 삽질을 했다. 다른분들은 빠른시간에 문제를 찾기 바라는 마음으로...

#리눅스에서 npm run build 안될때 #npm run build 리눅스
REPLY