整合一个基于xml的spring,mybatis和thymeleaf

鉴于现在还是有很多项目用xml形式来整合,所以又来整了一遍
上篇基于java config的链接 : http://www.jianshu.com/p/8fcefc4d724b

需要的环境与上一篇一致,其他相同的配置在这里也不再重写一遍了

  • new module,选择maven , Create From archetype,然后一路next,填写自己的包名


    整合一个基于xml的spring,mybatis和thymeleaf_第1张图片
    Paste_Image.png
  • 点击finish之后,idea会自动使用maven进行build,build后你会发现在src/main下没有java夹子


    整合一个基于xml的spring,mybatis和thymeleaf_第2张图片
    Paste_Image.png
  • 新建一个java夹子,然后打开Project-Settings,使java夹子Mark as Sources,最后Apply,Ok.


    整合一个基于xml的spring,mybatis和thymeleaf_第3张图片
    Paste_Image.png
  • 以上就建立了一个空的module,最后的工程结构如下图所示
    整合一个基于xml的spring,mybatis和thymeleaf_第4张图片
    Paste_Image.png

    这里大致的结构与上一篇相似,明显不同的在于多了一个webapp,这里放了静态资源,views,spring配置以及web.xml
  • web.xml


    Spring demo by Sam

    
    
        my-spring
        org.springframework.web.servlet.DispatcherServlet
        1
    
    
        my-spring
        /
    

    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        encodingFilter
        /*
    

  • my-spring-servlet.xml

    
    
    

    
        
            
        
    
    
    
    
    
    
    
    
        
            
                /login
            
        
    

    
        
        
            
            
                
                    
                        /login
                        /register
                        /home
                    
                
            
        
    

    
    
        
        
        
    

    
        
    

    
        
        
        
            
                
            
        
    
    
    
    
      
    
    
        
        
        
    
  
    
    
        
        
        
        
      

    
    
    
        
        
    

  • MySpringInterceptor
package com.sam.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * Created by sam on 16/5/31.
 */
public class MySpringInterceptor implements HandlerInterceptor {

    //不需要拦截的路径,如登陆注册首页
    private List excludedUrls;

    public void setExcludedUrls(List excludedUrls) {
        this.excludedUrls = excludedUrls;
    }
  
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        String requestUri = httpServletRequest.getRequestURI();
        for (String url : excludedUrls) {
            if (requestUri.endsWith(url)) {
                //在xml中初始化不需要拦截的url
                return true;
            }
        }
        // do sth;
        return true;     
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
    }
}
  • Finally ,访问 http://localhost:8080/YOUR_MODULE_NAME/hello/world 来试一下吧
  • ps : thymeleaf的staticVariables没有生效,如果有大牛看到,请在评论里给我答疑 _

你可能感兴趣的:(整合一个基于xml的spring,mybatis和thymeleaf)