spring boot 의 일반적인 설정

3868 단어 자바
spring boot 는 jar 를 통일 적 으로 관리 하고 자동 으로 설정 하여 우리 의 개발 에 큰 편 의 를 주 었 습 니 다.pom 파일 에 jar 가 있 을 때 spring 은 classpath:XX.class 에 따라
존재 하 는 지,관련 설정 을 자동 으로 가 져 옵 니 다.프로젝트 에서 설정 류 를 설정 하면 spring boot 는 우리 만 의 설정 을 사용 합 니 다.
1.프론트 데스크 톱 전송 시간 형식 변환
 시간 형식 변환 클래스 와 설정
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang.StringUtils;
import org.springframework.core.convert.converter.Converter;

/**
 *       date     ,          
 * @author Administrator
 *
 */
public class StringToDateConverter implements Converter {

	private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

	private static final String SHORT_DATE_FORMAT = "yyyy-MM-dd";
	
	@Override
	public Date convert(String value) {
		if (StringUtils.isBlank(value)) {
			return null;
		}

		value = value.trim();
		
		try {
			if(value.contains("-")){
				//            "-"   。eg: 2010-09-09
				SimpleDateFormat formatter;
				if (value.contains(":")) {
					//              
					formatter = new SimpleDateFormat(DATE_FORMAT);
				}else{
					//               
					formatter = new SimpleDateFormat(SHORT_DATE_FORMAT);
				}
				Date dtDate = formatter.parse(value);
				return dtDate;
			}else if (value.matches("^\\d+$")) {
				//           
				Long lDate = new Long(value);
				return new Date(lDate);
			}
		} catch (Exception e) {
			throw new RuntimeException(String.format("parser %s to Date fail", value));
		}
		throw new RuntimeException(String.format("parser %s to Date fail", value));
	}

}
import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;



/**
 *      
 * @author Administrator
 *
 */
@Configuration
public class ConverterConfigBean {

	@Autowired
    private RequestMappingHandlerAdapter handlerAdapter;
	
	@PostConstruct
    public void initEditableAvlidation() {

        ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer)handlerAdapter.getWebBindingInitializer();
        if(initializer.getConversionService()!=null) {
            GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService();           
            
            //          
            genericConversionService.addConverter(new StringToDateConverter());
        }
    }
}

2.controller 가 되 돌아 오 는 시간 형식 은 기본적으로 시간 스탬프 입 니 다.저희 가 직접 변환 해 야 합 니 다.
application.yml 파일 에 추가
#      
spring:
  jackson:
    time-zone: GMT+8
    date-format: yyyy-MM-dd HH:mm:ss

3.정적 자원 설정
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 *   spring mvc       ,               
 * @author Administrator
 *
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer   {
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //   /static/**       classpath:/static/    
		//          
        registry.addResourceHandler("/public/**").addResourceLocations("classpath:/public/");
        registry.addResourceHandler("/src/**").addResourceLocations("classpath:/src/");
        registry.addResourceHandler("/index.html").addResourceLocations("classpath:/index.html");
	}
	
	
	
	
}

좋은 웹페이지 즐겨찾기