반응형

개발/Spring 72

[Spring] 자바 파일 여러 개 압축하기

컨트롤러 메소드에서 매개변수로 request 와 response 가 있을 것이다. 우선 클라이언트 측에서 zip 파일을 다운로드 받기 위해 response 에 header 를 셋팅해야한다. response.setHeader("Set-Cookie", "fileDownload=true; path=/"); response.setHeader("Content-Disposition", String.format("attachment; filename=\""+"test"+"_"+format.format(date)+".zip\"")); 이런 식으로 클라이언트가 zip 파일을 다운로드 받을 수 있도록 해준다. 이제 ZipOutputStream 을 이용할 것인데, response ouput stream을 이용한다. ZipO..

개발/Spring 2018.02.02

[Spring] Spring 에서 Redis 예제

우선 필자는 Spring 4.3.4 RELEASE 버전을 사용하며 자바 1.8 버전을 사용하고 있다. // pom.xml org.springframework.data spring-data-redis 1.7.1.RELEASE redis.clients jedis 2.9.0 org.springframework.session spring-session 1.3.1.RELEASE pom.xml 에 위의 maven 저장소를 추가한다. 그리고 redis 서버와 연동하기 위해 필자는 [/WEB-INF/spring/xml] 이란 폴더에 [redis-context.xml] 이란 파일을 따로 생성하였다. // redis-context.xml 포트랑 hostname 은 각자의 사정에 맞추자~ 융통성 있게~ 이제 web.xml ..

개발/Spring 2018.01.18

[Spring Boot] Spring Boot 1.5.7 에서 Redis 사용하기

Spring Boot 1.5.7 에서 Redis 를 사용해보았다. Redis in-memory 기반으로 NoSQL DBMS 로 분류된다 한다. 캐쉬관리적인 측면에서 좋다고 한다. RestFul Server 에서는 무상태로 동작하는게 원칙이기 때문에 이 Redis를 사용한다고 한다. 자세한 이야기는 다음에~ Maven 기반으로 프로젝트를 생성하고 Redis 사용하려고 했는데 자꾸 ClassNotFound 관련 뭐 이런저런 오류가 많이 터졌다. 노트북을 터칠 뻔 했다. 아마 내 생각엔 Maven dependency 가 제대로 받아오지 않는 것 같았다. 그래서 직접 jar 다운로드해서 추가해줬다. 내가 추가해주었던 라이브러리들은 [jedis-2.9.0.jar], [commons-pool2-2.4.3.jar] ..

개발/Spring 2017.12.06

[Spring] Java and Spring forward 세미나

한국 스프링 사용자 모임(KSUG)이란 곳에서 주최하는 Spring 세미나에 참여 1. Java 9 의 새로운 기능2. HTTP/2 3. JSON-B, JSON-P, JPA 2.24. Spring 5.0 이란 내용으로 세미나를 진행했는데 HTTP/2 세미나는 솔직히 말하자면, 발표하시는 분의 말이 너무 빨라서 조금 힘들었다.. 그리고, JSON 세미나는 너무 스펙만 하시니까 재미가 없었고, 들을만 했던 세미나는 Java 9, Spring 5.0 에 관한 세미나였다. 내가 그마나 제대로 들은 두 가지 세미나 중 재미있었던 세미나는 Java 9 였는데, 세미나 들으면서 조금 정리해보았는데, 앞으로 이런 내용들을 포스팅 할 것 같다. Java 9- 유니코드 7.0 / 8.0 추가- SHA-3 Hash Alog..

개발/Spring 2017.11.26

[Spring] Filter 와 Interceptor 의 차이

Spring Filter 와 Interceptor 의 차이Filter or Interceptor 를 사용하는 이유무척 간단한 예시를 Session 과 관련해 들 수 있다.사용자가 로그인 함 (login.do)게시글 작성 페이지로 이동한다 (write.do)게시글 작성을 하면 DB에 해당 게시글을 작성한 사용자의 ID 와 게시글 정보가 insert 된다. 라는 상황이 있을 때 Session 처리를 하지 않을 시 로그인 하지 않은 사용자가 게시글 작성 페이지 (write.do) 로 곧장 이동해 게시글을 올리면 아마 서버는 터질 것이다. 그래서 이런 상황을 없애기 위해 나는 컨트롤러 클래스의 메소드마다 Session 을 검사하는 코드를 추가했는데, 추가하고 보니 총 100개의 메소드에 추가를 했다. 가독성도 ..

개발/Spring 2017.11.13

[Spring] Spring ant 빌드 후 톰캣 배포 삽질기

내가 맡은 프로젝트에 대해서 배포할 수 때가 생길 수 있으니 기존에 톰캣 말고 새로운 톰캣을 설치해서 새로운 톰캣에 배포하는 식으로 테스트를 해보았다. 우선 MAVEN 으로만 빌드 해보다가 Ant 빌드를 하려고 하니 잘 몰랐던 것 같다. 원래는 .war 파일을 이용해 배포하는 식으로 했었는데 지금 내가 맡은 프로젝트에서 배포하는 법은 .war 이 아닌 .class 파일들과 .lib 파일들이 들어있는 폴더를 이용해 배포한다. 즉, 쉽게 말하면 .war 파일을 압축해제 시켜놓은 폴더를 이용해 배포하고 있었다. 혹시 나중에 까먹을 수 있으니까 써놓는데, .war 파일은 톰캣 설치폴더의 webapps 폴더에 놓아두면 알아서 톰캣 서버가 실행될 때 압축 풀어서 사용한다. 다시 본론으로 돌아와서, 톰캣 서버를 다시..

개발/Spring 2017.10.18

[Spring] ibatis 에서 SELECT * FROM 데이터 받기

DB 에 있는 데이터들을 모두 가져와야 하는 상황이 생겼다. 나는 ArrayList 로 받으려고 한다. 이 때 아래와 같이 해주면 된다. 우선 ~.xml 에 쿼리문을 작성해놓았을 것이다. SELECT * FROM test ORDER BY day DESC 해당 코드는 날짜를 기준으로 제일 최신 순으로 정렬해 데이터를 반환하는 쿼리문이다. 우선 여기서 확인해야할 부분은 resultClass 이다. 다른 블로그들에서는 resultMap 을 사용하지만 난 귀찮다. 그러므로 resultClass 를 사용한다. 물론 이 차이에 대해서 알고 있다^^ 모르면 검색 기윽 resultClass 는 Dto 클래스로 가져오려는 데이터가 존재하는 테이블에 컬럼 명에 대한 변수들과 getter와 setter메소드가 존재한다. 알..

개발/Spring 2017.10.12

[Spring] @RequestMapping 을 xml 코드로 사용

지금 하고 있는 프로젝트가 모두 xml로 설정되어 있어서 혼자 어노테이션 사용하기 좀 그래서 xml 로 설정하고 있는 중에 Controller 클래스에서 @RequestMapping 부분을 xml로 어떻게 하는지 몰라서 프로젝트에 누가 짜놓았던 코드를 보니 ParameterMethodNameResolver 란 게 있었다. 이걸 사용하면 @RequestMapping 을 사용하지 않더라도 Controller 클래스에서 각각의 메소드들을 구분해 이용할 수 있다. 우선 스프링에 이걸 보고 있는 당신들의 프로젝트에 ~-context.xml 에 들어가자/. 그리고 와 같은 식으로 코드를 작성한다. 여기서 paramName은 좀 뒤에 다시 설명하도록 하고, defaultMethodName은 말 그대로 default로..

개발/Spring 2017.10.12

[Spring] DefaultAnnotationHandlerMapping

Implementation of the HandlerMapping interface that maps handlers based on HTTP paths expressed through the RequestMapping annotation at the type or method level. HandlerMapping 인터페이스의 구현은 타입 또는 메소드 레벨에서 RequestMapping 어노테이션을 통해 HTTP 경로를 기반으로 handler를 매핑한다. Registered by default in DispatcherServlet on Java 5+. NOTE: If you define custom HandlerMapping beans in your DispatcherServlet context, yo..

개발/Spring 2017.09.19
반응형