Spring Boot Graceful Shutdown

Kubernetes 기반의 구조에서 Spring Boot를 주로 사용하다 보니 서비스 무중단 배포가 중요한 이슈로 부상했습니다. 이를 대응하다 보니 Open Source Library를 만들어서 ( 다른 Library를 거의 베껴서 ) 공개하게 되었습니다. https://github.com/SilverNine/spring-boot-graceful-shutdown PS. 마음껏 수정하기 위해 기존의 다른 Library를 쓰지 않고 새로 만들게 되었습니다.

Spring Batch – @Transactional 이슈 해결 방법

Spring Batch Admin 을 통합한 Spring Batch 프로젝트에서 아래와 같은 경우 @Transactional 어노테이션이 정상적으로 작동하지 않는 경우가 있습니다.     1. 기존 Spring Batch Admin 라이브러리 내부에 transactionManager가 선언되어 있기 때문에 다른 이름으로 TransactionManager를 선언하여 사용

2. 위와 같이 선언하고 아래와 같이 어노테이션을 사용하여 트랜젝션을 설정

  이와 같은 더보기…

Java로 web.xml 구현하기 2

web.xml을 java로 구현하는 방법에 대해서 이전에 WebApplicationInitializer 를 이용하는 방법을 올렸습니다. Java로 web.xml 구현하기 이외에 Spring 3.2 부터는 AbstractAnnotationConfigDispatcherServletInitializer 를 이용하여 구현하는 방법이 있습니다.

  Filter를 사용하기 위해 onStartup을 Override한다면 이를 사용하지 않는 방법도 있습니다.

 

JsonView Null to Empty String

Spring에서 JsonView 사용 시 공통으로 null인 필드를 empty string으로 리턴해야 할 필요가 있는 경우가 있습니다. 이런 경우 ObjectMapper를 상속받은 Custom ObjectMapper를 이용한 HttpMessageConverter를 통해 해결할 수 있습니다. 1.NullSerializer 구현

2.CustomObjectMapper 구현

3.HttpMessageConverter 추가

 

Mocking BindingResult

Controller Test시에 해당 method를 invoke를 할 일이 생길 수 있습니다. 이때 @Valid Annotion을 사용하고 있다면 BindingResult를 Mock객체로 만들어야 할 일이 생깁니다. 방법은 Mock 객체를 사용할 수 있게 setup 코드를 삽입하면 해당 BindingResult를 무시하고 Test Code를 작성할 수 있습니다.

Java Generic 와일드 카드, 가변인자의 예

Java Generic 와일드 카드, 가변인자의 예 org.springframework.web.servlet > FrameworkServlet.java

 

KSUG Spring Camp 2013 영상

KSUG ( Korea Spring User Group ) 에 좋은 글이 올라와서 공유합니다. 감사합니다 안녕하십니까, KSUG 일꾼단 김지헌입니다. 지난 해에 발표한 영상이 편집되어 유투브에 기재되었습니다. 이에 내용을 정리해서 공유합니다. 즐거운 설명절 무사히~ 즐겁게~ 보내시길 바랍니다. ^^ YouTube: springcampkr http://www.youtube.com/user/springcampkr @ Track A DSL 로 만나는 Groovy (장시영) 발표자료: http://www.slideshare.net/seeyoung/dsl-groovy 예제코드: https://github.com/seeyoung/GroovyDSL 발표영상: http://www.youtube.com/watch?v=VQSJ2harjoI 무식하게 배우는 더보기…

Hibernate 4.3.0.Final < > Querydsl 3.3.0 충돌 이슈

flowdabbler.com 개발노트 (3) – Hibernate 4.3.0.Final <> Querydsl 3.3.0 충돌이슈 Hibernate 4.3.0.Final 과 Querydsl 3.3.0 을 같이 사용할 경우 아래와 같은 에러가 발생한다 java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index; 이유는 Hibernate 4.3.0.Final 에서는 hibernate-jpa-2.1-api-1.0.0.Final.jar 를 사용하고 Querydsl 3.3.0 에서는 hibernate-jpa-2.0-api-1.0.0.Final.jar 를 사용하기 때문이다 해결방법은 1. 아래와 같이 querydsl-jpa 는 hibernate-jpa-2.0-api를 제외하도록 설정한다

2. 더보기…

flowdabbler.com 개발시작

flowdabbler.com 개발노트(1) – 시작 Spring Framework 4.0 + Hibernate 4 + Spring Data JPA 를 사용하여 개발중 요새 많이 쓰시는 Querydsl은 추후 적용 예정 Spring Framework + Hibernate + Spring Data JPA + Querydsl 를 사용하여 개발중 ( Querydsl 을 쓰는 것이 훨씬 편하구나.. 적용완료! ) 사내 프로젝트 QMS, DEV용식님 더보기…

Java로 web.xml 구현하기

flowdabbler.com 개발노트 (2)  – Java로 web.xml 구현하기 Servlet 3.0 의 WebApplicationInitializer 을 구현하여 Java로 web.xml를 구현할 수 있다 아쉽게도 cafe24 jsp호스팅은 Servlet 3.0을 지원하지 않는 것 같다… 다시 web.xml 로 복귀.. 아래 web.xml 과 WebXmlConfig.java 는 동일한 동작을 한다 비교해보자 WebXmlConfig.java

  web.xml