5.基于Session的认证方式-创建工程

创建工程

  • 本案例工程使用maven进行构建,使用SpringMVC,Servlet3.0实现。

创建maven工程

  • 创建maven工程security-springmvc,工程结构如下:


    image
  • 引入如下依赖,注意:
    • 由于是web工程,packaging设置为war
    • 使用tomcat7-maven-plugin插件来运行工程


    4.0.0

    com.stan.security
    security-springmvc
    1.0-SNAPSHOT

    
        UTF-8
        1.8
        1.8
    
    war

    
        
            org.springframework
            spring-webmvc
            5.1.5.RELEASE
        
        
            javax.servlet
            javax.servlet-api
            3.0.1
            provided
        
        
            org.projectlombok
            lombok
            1.18.8
        
    

    
        security-springmvc
        
            
                
                    org.apache.tomcat.maven
                    tomcat7-maven-plugin
                    2.2
                
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        1.8
                        1.8
                    
                
                
                    maven-resources-plugin
                    
                        utf-8
                        true
                        
                            
                                src/main/resources
                                true
                                
                                    **/*
                                
                            
                            
                                src/main/java
                                
                                    **/*.xml
                                
                            
                        
                    
                
            
        
    

Spring容器配置

  • 在config包下定义ApplicationConfig.java,它对应web.xml中ContextLoaderListener的配置
@Configuration
@ComponentScan(value = "com.security.springmvc"
        ,excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = Controller.class)})
public class ApplicationConfig {
    //在此配置除了Controller的其它的bean,比如:数据库连接池,事务管理器,业务bean等
}

ServletContext配置

  • 本案例采用Servlet3.0无web.xml方式,的config包下定义WebConfig.java,它对应DispatchServlet配置。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.security.springmvc"
        ,includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION,value = Controller.class)})
/**
 * 相当于springmvc.xml文件
 */
public class WebConfig implements WebMvcConfigurer {
    //视图解析器
    @Bean
    public InternalResourceViewResolver viewResolver(){
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
}

加载Spring容器

  • 在inti包下定义Spring容器初始化类SpringApplicationInitializer,此类实现WebApplicationInitializer接口,Spring容器启动时加载WebApplicationInitializer接口的所有实现类。
public class SpringApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    /**
     * spring容器,相等于加载了applicationContext.xml
     * @return
     */
    @Override
    protected Class[] getRootConfigClasses() {
        return new Class[]{ApplicationConfig.class};
    }

    /**
     * servletContext,相当于加载springmvc.xml
     * @return
     */
    @Override
    protected Class[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }

    /**
     * url-mapping
     * @return
     */
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

你可能感兴趣的:(5.基于Session的认证方式-创建工程)