WebAppConfig.java 2.46 KB
package pwc.taxtech.atms.web;

import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

import javax.xml.transform.Source;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
import org.springframework.http.converter.xml.SourceHttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

@Configuration
public class WebAppConfig implements InitializingBean {
    private static Logger logger = LoggerFactory.getLogger(WebAppConfig.class);

//    @Autowired
//    private FastJsonHttpMessageConverter fastJsonHttpMessageConverter;
    
    @Autowired
    private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter;

    @Override
    public void afterPropertiesSet() throws Exception {
        logger.debug("WebAppConfig init");
    }

    @Bean
    public RestTemplate restTemplate() {
        List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
//        messageConverters.add(fastJsonHttpMessageConverter);
        messageConverters.add(mappingJackson2HttpMessageConverter);
        // messageConverters.add(new
        // StringHttpMessageConverter(Charset.forName("UTF-8")));

        RestTemplate bean = new RestTemplate(messageConverters);
        bean.setRequestFactory(requestFactory());
        return bean;
    }

    /** 设置超时的时间 */
    private ClientHttpRequestFactory requestFactory() {
        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
        factory.setReadTimeout(20000);
        factory.setConnectTimeout(5000);
        return factory;
    }

}