Programming/Java

    스프링 Maven BOM Dependency

    스프링을 사용하다보면 spring-context, spring-web, spring-tx 등등 각각의 라이브러리에 버전을 기재해서 pom.xml을 작성합니다. 이렇게 하다 보면 서로 다른 버전의 spring framework 라이브러리가 include될 수가 있습니다. 따라서 아래와 같이 maven에 spring bom(bill of materials)를 import하면 각기 다른 spring framework가 include되는 것을 방지할 수 있습니다. 또한, 필요한 spring framework 라이브러리 마다 별도의 버전을 기재할 필요가 없습니다. Maven "Bill Of Materials" Dependency It is possible to accidentally mix different ve..

    스프링 ContentNegotiatingViewResolver

    스프링 3.0부터 json, xml 에 대한 지원을 위해 ContentNegotiatingViewResolver라는게 새로 생겼는데 3.2부터 usage가 바뀌었습니다. 기존 설정방법은 아래와 같았으나, 7번 라인에서의 mediaType이 deprecated 됐습니다. * 이와 더불어 defaultContentType, favorParameter, IgnoreAcceptHeader 등도 deprecated 됐습니다. * Json 라이브러리가 이전에는 codehaus이었으나 fasterxml로 바뀌었습니다. 이를 바꾸면 아래와 같이 설정할 수 있다. 4번줄 대로 contentNegotiationManager라는 것을 사용해야 한다. 또한 codehaus의 json라이브러리 대신 19번줄 대로 바뀐 Json..

    slf4j api 사용 방법

    slf4j api 사용 방법

    slf4j를 logging 라이브러리로 많이 사용합니다. java.util.logging org.apache.log4j org.apache.commons.logging 기존의 위 라이브러리를 slf4j 가 제공하는 bridge 라이브러리를 사용하면 모든 로그 들은 한곳에 집중화 시키고 이를 제어할 수 있습니다. 따라서 아래의 라이브러리를 사용하고 기존의 commons-logging, log4j 라이브러리 디펜던시는 모두 exclude(제외) 시켜야 합니다. slf4j-api jcl-over-slf4j jul-to-slf4j log4j-over-slf4j 그리고 아래 이미지는 slf4j-api 를 이용하는 logback 로깅 라이브러리를 사용했습니다.

    httpclient에서 post로 전달되는 값이 인코딩되지 않게하는 방법

    httpclient에서 post로 전달되는 값이 인코딩되지 않게하는 방법

    네이트온 SMS문자 보내기를 httpclient로 하려는 도중 post방식으로 넘기는 값이 특수 문자일경우 자동으로 인코딩되기 때문에 네이트온에서 제대로 먹혀 들지 않습니다. 예를 들어 post방식으로 패킷 전달시 Body에 param=%3fTICKET%3d&id=mcshin 이와 같이 보내면 param의 value값인 "%3fTICKET3d%"이 그대로 전송이 되지 않고 "%253fTICKET3d%25"으로 인코딩되어 전송 됩니다. 따라서 httpclient 소스의 EncodingUtil.java를 아래와 같이 수정하면 됩니다. (httpclient 3.1 기준) private static String doFormUrlEncode(NameValuePair[] pairs, String charset) t..