본문 바로가기

개발자의 정보/Java & framework34

Bean의 생성과 소멸에 발생되는 이벤트 Bean 이 생성된 직후 그리고 소멸직전 이벤트가 발생하여 해당 이벤트에 내가 원하는 동작을 넣을 수 있다. @PostConstruct: call after construct @PreDestroy: call before destroy @PostConstruct public void init() { System.out.println("hello."); } @PreDestroy public void destroy() { System.out.println("bye."); } 가끔이지만 아주 유용하게 사용되는 기능이니 잘 기억해 두는 것이 좋겠다. 2020. 2. 13.
Java에서 Jackson 사용중 JSON data에 특정 field 제외 하거나 포함하기 Jackson 라이브러리는 매우 편리합니다. 오브젝트를 JSON 형태로 바꾸거나 반대로 JSON을 오브젝트 형태로 바꿀때 아주 유용하죠. 자동으로 모든 항목을 바꿔 주니까 참 좋은데 가끔 패스워드 처럼 같은 특정 항목은 사용자의 입력을 서버에서 받아 처리하지만 사용자에게 내려 보내주면 안되는 경우가 있습니다. 이럴때는 Jackson annotation 기능을 활용하면 매우 쉽게 들어오는 JSON 데이터를 받을 때는 사용하고 내보낼 때는 사용하지 않도록 설정할 수가 있습니다. 물론 그 반대도 마찬가지 입니다. Java는 오브젝트의 접근 권한 관리와 데이터의 신뢰도를 매우 중요하게 생각하기 때문에 값을 넣을 때는 setter 메소드를 활용하도록 권장하고 받을 때는 getter 메소드를 사용하도록 권장하고 있.. 2020. 2. 13.
Simplified sorting in List List 형태가 java 에서 가장 많이 접하는 형태중 하나일 것이다. 대체로 Comparator 혹은 Comparable 을 많이 구현할 텐데 특별한 작업이 필요없는 경우가 대부분이다. 이럴 때는 간편하게 한줄로 정렬해 주자. List list = getMyClassList(); list.sort(Comparator.comparing(MyClass::myMethod)); 당황하지 않고 끝. 2020. 2. 12.
데이터 변경 알림 - @EntityListeners spring 의 data-jpa 사용시 데이터 변경시 알림을 받는 방법이 있다. EntityListener 클래스를 만들고 public class DataDtoListener { @PostLoad public void postLoad(DataDto dto) { log.info("post load: {}", dto); } @PrePersist public void prePersist(DataDto dto) { log.info("pre persist: {}", dto); } @PostPersist public void postPersist(DataDto dto) { log.info("post persist: {}", dto); } @PreUpdate public void preUpdate(DataDto dt.. 2020. 2. 11.
자바로 파일 인코딩 확인하기 - Check the file encoding in Java language 프로젝트 진행중 파일 인코딩을 일괄 변경할 일이 생겼다. 파일이 좀 많아서 대략 3천개 내외 정도 되나보다. 그래서 일괄 변경을 위해 간단한 프로그램을 만드는데 경천동지할 일이 발생한 것이었다. 이전 파일이 모두 euc-kr 인줄 알았는데 utf-8 이 섞였다. 이런.. 그렇다면 결국 파일의 encoding을 확인하고 해당 charset 설정을 해주어야 한다는 이야기다. 자바에서는 누구나 비슷한 고민을 해본다는 전제하에 분명 누군가가 비슷한 고민을 하고 미리 만들어 둔 모듈이 있을거라 생각했다. 검색.. 검색.. 구글링... 구글링... 흐흐흐 역시나 있다. https://code.google.com/p/juniversalchardet/ 위의 페이지에서 찾았다. sourceforge 프로젝트도 있나보다... 2020. 2. 1.
[JSP] forward된 페이지에서 request.getRequestURI 사용하기 Spring MVC 상에서 request.getRequestURI() 함수를 사용할 때 Controller 단에서는 제대로된 주소가 나온다. 하지만 jsp view 페이지에서는 /WEB-INF/views/.. 경로가 나오게 된다. 이는 Spring 에서 forward 하기 때문인데 jsp 페이지에서 다음과 같은 el 코드를 통해 사용할 수 있다. request.getAttribute("javax.servlet.forward.servlet\_path"); 아래는 jstl el 문법이다. ${requestScope\['javax.servlet.forward.servlet\_path'\]} servlet 2.4 이상 버전에서 이와 같이 사용할 수 있는 속성은 다음과 같은 것들이 있다. sample 요청 URL.. 2020. 2. 1.