AdminApplication.java 2.44 KB
package com.uccc.admin;

import com.uccc.admin.config.CommonLoggingFilter;
import com.uccc.admin.interceptor.AuthenticationInterceptor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * @author :bert
 * @date :2021-09-09 09:59.
 */
@SpringBootApplication
@EnableAsync
//@MapperScan("com.uccc.iot.device.mapper")
//@ComponentScan({""})
public class AdminApplication extends WebMvcConfigurerAdapter {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthenticationInterceptor()).
            addPathPatterns("/iot/**");
//            excludePathPatterns("/iot/getToken").
    }

    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(1000);
        requestFactory.setReadTimeout(500);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return  restTemplate;
    }

    /**
     * Description:日志统一打印
     * Created by bert on 21/09/10 10:16
     * Author: bert
     */
    @Bean
    public FilterRegistrationBean loggingFilterRegistration() {
        long ignoreBodySize = 10 * 1024 * 1024; //body日志控制10MB以内
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setName("logging");
        CommonLoggingFilter loggingFilter = new CommonLoggingFilter();
        registrationBean.setFilter(loggingFilter);
        registrationBean.setOrder(1);
        registrationBean.addInitParameter("totalTime","true");
        registrationBean.addInitParameter("mergeRequestAndResponse", "true");//合并request和response信息
        registrationBean.addInitParameter("ignoreBodySize", String.valueOf(ignoreBodySize));
        return registrationBean;
    }

    public static void main(String[] args) {
        SpringApplication.run(AdminApplication.class,args);
    }
}