1. Configuration in Application. Java@EnableTransactionManagementAutomatically enable transactions@SpringBootApplication
@MapperScan(basePackages={"com.hxkj.waychat.dao"})
@ServletComponentScanNote configuration for interceptors, filters, and listenerspackage com.hxkj.waychat.intercept.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.hxkj.waychat.core.config.Constant;
import com.hxkj.waychat.core.utils.PropertiesUtils;

@WebListener
public class ThymeleafServletContextListener implements ServletContextListener {

	private static Logger logger = LoggerFactory.getLogger(ThymeleafServletContextListener.class);
	
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		logger.info("-- -- -- -- -- -- -- -- -- -- : ServletContext destruction");
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		logger.info("----------:ServletContext initialization");
		logger.info("----------:baseUrl:"+PropertiesUtils.getPropertiesValue(Constant.BASE_URL)+"; fileUrl:"+PropertiesUtils.getPropertiesValue(Constant.FILE_URL));
		arg0.getServletContext().setAttribute("baseUrl", PropertiesUtils.getPropertiesValue(Constant.BASE_URL));
		arg0.getServletContext().setAttribute("fileUrl", PropertiesUtils.getPropertiesValue(Constant.FILE_URL)); }} 3. Filter configurationpackage com.hxkj.waychat.intercept.fliter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/*@WebFilter(filterName="MyFilter",urlPatterns="/*")*/
public class MyFilter implements Filter {

	private static Logger logger = LoggerFactory.getLogger(MyFilter.class);
	
	@Override
	public void destroy(a) {
		logger.info("----------: Filter destruction");
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		logger.info("----------: Filter execution content");
		
		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		logger.info("----------: Filter initialization"); }} 4. Interceptor configuration1.Spring boot default interceptor with HandlerInterceptorAdapter AbstractHandlerMapping UserRoleAuthorizationInterceptor LocaleChangeInterceptor ThemeChangeInterceptor2.Configure the WebMvcConfigurerAdapter, an interceptor for Spring MVCpublic class WebAppConfig extends WebMvcConfigurerAdapter3. Implement the method of adding interceptorspublic void addInterceptors(InterceptorRegistry registry)The {} registry. AddInterceptor method allows you to add interceptors, either provided by Spring or by yourself4.Part instancepublic class WebAppConfig extends WebMvcConfigurerAdapter{	
    public static void main(String[] args) {
		SpringApplication.run(WebAppConfig.class, args);
	} 
    
    /** * Configure interceptors *@author lance
     * @param registry
     */
    public void addInterceptors(InterceptorRegistry registry) {
    	registry.addInterceptor(new UserSecurityInterceptor()).addPathPatterns("/user/**"); }} UserSecurityInterceptor codepublic class UserSecurityInterceptor implements HandlerInterceptor {

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
        return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {}@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {}} Five, the use of timer@Component  
public class Scheduler {  
    private final Logger logger = LoggerFactory.getLogger(this.getClass());  
      
    @Scheduled(cron="0 0/1 * * * ?" ) // Execute once per minute
    public void statusCheck(a) {      
        logger.info("This is performed every minute. Start...");  
        //statusTask.healthCheck();  
        logger.info("This is performed every minute. End.");  
    }    
  
    @Scheduled(fixedRate=20000)  
    public void testTasks(a) {      
        logger.info("Every 20 seconds. Start...");  
        //statusTask.healthCheck();  
        logger.info("Every 20 seconds. End."); }} Global exception handlerpackage com.hxkj.fsslr.controller;

import java.io.FileNotFoundException;

import javax.lang.model.type.UnknownTypeException;
import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hxkj.fsslr.core.utils.PageReturnUtils;

/ * * *@ClassName: GlobalExceptionHandler 
 * @Description: Global exception handling *@author [email protected]
 * @dateJuly 18, 2016 1:17:59 */
@ControllerAdvice
public class GlobalExceptionHandler {

	private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
	
	@ExceptionHandler(value=Exception.class)
	@ResponseBody
	public Object errorHandler(HttpServletRequest request,Exception e){
		logger.info("----- caught an exception -----");
		// The Ajax request returned an exception
		if(null! = request.getHeader("X-Requested-With") && "XMLHttpRequest".equals( request.getHeader("X-Requested-With").toString())){
			if (e instanceof NullPointerException) {
				return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, "Data parameter passing error");
			} else if (e instanceof FileNotFoundException) {
				return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, "Error uploading data file");
			} else if (e instanceof ClassNotFoundException) {
				return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, "The system did not find the JAR package");
			} else if (e instanceof UnknownTypeException) {
				return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, "Unknown error");
			} else{
				return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, e.toString()); }}return PageReturnUtils.formatNormal("", PageReturnUtils.MSG_CODE_111111, PageReturnUtils.MSG_STATE_FALSE, e.toString()); }}Copy the code