목록Server (101)
써먹는 웹개발
SELECT * FROM board fetchSize 미 입력시 (기본 값) 10 fetchSize 가 10 이면 5000건을 조회하면 실제 db에서 500번을 조회 fetchSize 가 1000 이면 5번만 조회 MYbatis fetchSize 설정 :: 또리야 개발하자 - https://ddoriya.tistory.com/entry/MYbatis-fetchSize-%EC%84%A4%EC%A0%95
1. 콘트롤러 Map responseData = testService.getTestListAPIData(params); 1) Websocket 이면 messagingTemplate.convertAndToUser(params.gdtLoginId().get(), destination, successResponse(responseData)); 2) Websocket 아니면 try { ... return successResponse(responseData); } catch (Exception e) { return failResponse(e); } ※ successResponse의 형식이 websocket일때는 직접쏘지 않으므로 ResponseEntity, 아닐때는 직접쏘므로 DeferredResult> 를 쓴다..
DeferredResult 클래스는 어떤 요청에 대한 응답 이벤트를 Queue에 저장하고 있다가 DeferredResult.setResult() 메소드가 호출되면 DispatcherServlet으로 응답을 보냅니다. 즉, 서버가 Push하는 기술들을 구현할 수 있습니다. ex) deferredResult.setResult(data); 응답 소스 deferredResult.setResult(ResponseEntity.ok(kr.go.nis.nsis.fisp.portal.entity.Result.success().data(o).build())); ※ 쓰레드 풀 동작원리 : 큐를 먼저 채우다가 큐가 다 차면, maxPoolSize까지 쓰레드를 더 추가로 늘렸다가 쓰레드가 다 차면 오류 발생
@PostLoad는 엔티티를 로딩한 후에 호출할 메서드를 설정한다. ex) @PostLoad public void setFormat() { // fullName 변경 if (fullName == null && name != null) { fullName = name + " (" + nameKr + ")"; } else { fullName = name; } }
모델(model)에 순번추가 방법 ※ db의 시퀀스에서 가져오는 SequenceGenerator까지 필요하지 않은 경우입니다. model private int num; list에 추가할 것 List list = 리스트; for(int i=0;i
에러 발생한 소스 1 httpclient = new DefaultHttpClient(); cs 에러메시지 1 W/SingleClientConnManager(22006): Invalid use of SingleClientConnManager: connection still allocated cs 해결한 방법 1 2 3 4 5 6 7 8 9 public static DefaultHttpClient getThreadSafeClient() { DefaultHttpClient client = new DefaultHttpClient(); ClientConnectionManager mgr = client.getConnectionManager(); HttpParams params = client.getParams();..
http는 양방향 통신으로 서버로부터 응답을 받으려면 반드시 요청을 보내야 되었다. 하지만 Websocket은 커넥션이 생성되면 자유롭게 서버에서 클라이언트에게 데이터를 전달할 수 있다. http 비유는 가족한테 '몇시야?' 라고 물어보면 대답해주는거고, Websocket 비유는 가족한테 '택배오면 깨워줘' 이랬을때 택배오면 그때 깨워주는 것이다.