2016년 7월 28일 목요일

Spring Boot 1.4.0 적용시 변경되는 부분들

[new-and-noteworthy 링크]


  • Hibernate 4 -> 5
  • org.jadira.usertype 4.0.0.GA -> 5.0.0.GA

@ConfigurationProperties deprecated attribute


Deprecated 예정인 항목 중
The locations and merge attributes of the @ConfigurationProperties annotation have been deprecated in favor of directly configuring the Environment.
이 부분이 있다.

@ConfigurationProperties를 통해 yml설정을 사용하던 부분이 앞으로 locations 가 제거되고 나면 문제가 될 듯 하다.
[관련 링크]
@PropertySource는 yml 호출을 아직 지원하지 않고 있다.


MessageSourceAutoConfiguration classpath

그동안 몰랐었는데 Spring Boot MessageSourceAutoConfiguration가 변경된 부분이 있다. [관련 링크]
1.3.2, 1.2.9 이전의 경우
private Resource[] getResources(ClassLoader classLoader, String name) {
    try {
        return new SkipPatternPathMatchingResourcePatternResolver(classLoader).getResources("classpath*:" + name + "*.properties");
    }
    catch (Exception ex) {
        return NO_RESOURCES;
    }
}


1.3.2, 1.2.0 이후
private Resource[] getResources(ClassLoader classLoader, String name) {
    try {
        return new PathMatchingResourcePatternResolver(classLoader).getResources("classpath*:" + name + ".properties");
    }
    catch (Exception ex) {
        return NO_RESOURCES;
    }
}

어차피 i18n 적용을 하면 이 변경은 의미가 없는 것 같고 오히려 한 개라도 일치하는 messageSource properties가 없으면 전체 i18n properties를 다 로드하지 않는 문제가 있다.

Hibernate @GeneratedValue

Hibernate 가 4에서 5로 변경되면서 기존 @GeneratedValue의 사용에 오류가 발생한다.

기본 strategy인 GenerationType.AUTO가 5에서 제대로 동작하지 않기 때문에 명시적으로 선언이 필요하다.

@GeneratedValue(strategy = GenerationType.IDENTITY)


Thymeleaf3

Thymeleaf 3을 쓰는 경우 thymeleaf-extras-java8time 2.1.0.RELEASE -> 3.0.0.RELEASE로 변경해서 사용해야 한다.
템플릿 엔진이 변경되면서 주석처리에 문제가 있던 부분도 해결이 되었다.
따라서 thymeleaf-extras-conditionalcomments 라이브러리는 제거해야 한다.

댓글 1개:

  1. @ConfigurationProperties locations 제거 이슈는 https://github.com/spring-projects/spring-boot/issues/6726 요기 참고해보시면 도움될듯합니다 :)

    답글삭제