포매터를 따라 사용자 지정 메시지 컨버터를 사용하는 경우. 이것은 문자열 값을 객체에 바인딩 할 수있게 해주는 다른 방법으로 잘 작동 했으므로 매우 편리했습니다. XML로 설정했다 :NoSuchMessageException 나는 스프링 3.2 M1을 사용하고 내가 그들의 문자열 표현 (최대 절전 모드 매핑 실체 될 일이) POJO에 서식을 포맷터와 함께 일하는 3.</p> <p>최대 절전 모드있어
<mvc:annotation-driven conversion-service="conversionService" />
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="formatters">
<set>
<bean class="aa.XFormatter" />
<bean class="aa.YFormatter" />
<bean class="bb.ZFormatter" />
</set>
</property>
<property name="formatterRegistrars">
<set>
<bean class="aa.DateFormatterRegistrar" />
</set>
</property>
</bean>
모든 것이 잘 작동했다 I 최대 절전 POJO를 응답을 jsonifiying와 게으른 로딩 문제를 제거하는 (을-최대 절전 모드 잭슨 모듈 를 사용하여 HibernateAwareObjectMapper)를 사용자 지정 개체 매퍼를 추가하는 데 필요한 때까지 백 엔드에서. 위의 코드에 다음을 추가했습니다.
<mvc:annotation-driven conversion-service="conversionService">
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="cc.HibernateAwareObjectMapper"></bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
이렇게하면 지연로드 문제를 해결할 수 있습니다. (예에 대한 날짜 문자열을 바인딩 할 때) 포맷터를 호출 할 때 새로운 오류가 표면화 :
org.springframework.context.NoSuchMessageException: No message found under code 'fieldOfX.depended' for locale 'en_US'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:161)...
fieldOfX 완벽 전에 날짜/객체 표현의 문자열 표현에서 포맷 한 Date 형의 필드 인 사용자 정의 객체 매퍼를 추가합니다. 그리고 나는 이에 의존한다는 것을 알고 싶어합니다.
나를 괴롭히는 또 다른 단점은 개체에서 문자열로 서식을 지정하는 것이 올바르게 작동하는 것입니다.
제 생각에 포맷터는 변환기입니다. 그리고 메시지 변환기는 종류의 변환기입니다. 그러나 나는 이것이 틀렸다는 것을 느끼기 시작했다.
그래서 내가 뭘하고/잘못 이해하고 있니? 어떤 도움도 환영합니다.
질문에 직접 관련이 없습니다 - MILESTONE 릴리스 (비 안정)를 사용하고 계십니까? 가장 안정적인 3.2.3.RELEASE로 전환해야합니다. –
M이 마일스톤을 의미한다고 설명해 주셔서 감사합니다. 업그레이드가 필요하다는 것을 알고 있었지만 비 안정적인 단어는 빠르게 처리해야합니다. – Mina