2015-03-04 6 views
13

के माध्यम से FAIL_ON_EMPTY_BEANS को अक्षम करने के लिए कैसे करें वसंत में कोई वैश्विक कॉन्फ़िगरेशन है जो वसंत FAIL_ON_EMPTY_BEANS को @ResponseBody के साथ एनोटेटेड सभी नियंत्रक के लिए अक्षम कर सकता है?वसंत और जैक्सन, @ResponseBody

उत्तर

21

आप जब configureMessageConverters

@Bean 
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { 
    ObjectMapper mapper = new ObjectMapper(); 
    mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); 
    MappingJackson2HttpMessageConverter converter = 
     new MappingJackson2HttpMessageConverter(mapper); 
    return converter; 
} 

को विन्यस्त आप को पता है अपने आवेदन में वास्तव में कैसे करना चाहते हैं अपने वस्तु नक्शाकार कॉन्फ़िगर कर सकते हैं, आपके विन्यास फाइल (xml या जावा कॉन्फ़िगरेशन) के साथ अपने प्रश्न अपडेट करें।

संदेश कन्वर्टर्स को कस्टमाइज़ करने के लिए यहां एक अच्छा article अच्छा है।

संपादित करें: आप जावा कॉन्फ़िगरेशन के बजाय एक्सएमएल का उपयोग कर रहे हैं, तो आप एक कस्टम MyJsonMapper वर्ग कस्टम विन्यास के साथ ObjectMapper विस्तार के रूप में

public class MyJsonMapper extends ObjectMapper {  
     public MyJsonMapper() { 
      this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); 
     } 
} 

अपने XML में इस प्रकार बना सकते हैं, और फिर इसे का उपयोग करें:

<mvc:annotation-driven> 
     <mvc:message-converters> 
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
       <property name="objectMapper" ref="jacksonObjectMapper" /> 
      </bean> 
     </mvc:message-converters> 
</mvc:annotation-driven> 


<bean id="jacksonObjectMapper" class="com.mycompany.example.MyJsonMapper" > 
+0

एक एक्सएमएल नमूना मिला? धन्यवाद – tgkprog

+0

कृपया संपादित उत्तर देखें। – vtor

+7

यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं, तो आप यह कर सकते हैं: 'spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false' – DKroot

18

यदि आप स्प्रिंग बूट का उपयोग कर रहे हैं, तो आप निम्न प्रॉपर्टी application.properties फ़ाइल में सेट कर सकते हैं।

spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false

अपने मूल्यवान टिप्पणी के लिए @DKroot के लिए धन्यवाद। लेकिन मेरा मानना ​​है कि यह दूसरों के लिए अपना जवाब होना चाहिए।

+1

अच्छी टिप, लेकिन सावधान रहें 'एचएएल के साथ काम नहीं करते, क्योंकि स्प्रिंग हैटोज़ अपने ऑब्जेक्ट मैपर का निर्माण करता है। https://github.com/spring-projects/spring-hateoas/issues/333 – Jannik

संबंधित मुद्दे