【半小时快速上手】Maven项目配置SSM框架思路和遇到的坑

目录

 

前言

思路

一.运行环境

二.选取jar包

pom文件贴上 

  三.配置web项目

1. 先从spring配置开始

2. mybatis配置

3. mvc-servlet配置


前言

由于框架配置的范围比较广,每个人都会有不同的需求,本文首先界定一下范围,仅限于spring 整合 mvc 以及 mybatis,将最基本的功能搭建好

思路

第一次是连同jar包版本也是自己选取,遇到的问题不少,查阅了很多资源并从中得到帮助,要配置一个基础框架,逻辑顺序是

  1. 配置好运行环境
  2. 选取依赖jar包,并采用POM来管理
  3. 各种配置,这个环节再细分讲解

一.运行环境

首先环境采用  jdk1.8 + mysql 5.7 + tomcat9 + maven3 安装配置网上很多,这里不再赘述

二.选取jar包

第一次选取jar包,只要掌握主体需要哪些依赖即可,至于版本,可以参考maven中央仓库

  核心是mvc  / mybatis  和 spring 相关包 全家桶进行整合,

  然后是数据库驱动、连接池、json序列化插件/jackson或fastJson二选一、servlet api(脱离容器注入)

  再辅助给上一些工具类jar包,如apache工具全家桶

  最后是一些插件 ,包括分页 、generator实体生成工具、测试单元

首先spring 该用哪些 jar包 本人之前博客已经做了说明 

https://mp.csdn.net/postedit/83995217

总的来说spring需要的模块  核心 ——>AOP——>事务——>ORM——>测试

spring aop 说明下  ,aspectjweaver 这个包,是spring aop的依赖包 , 引用时需要注意版本,比如4.3.12,maven仓库推荐使用aspectjweaver 1.8.9的jar包  , 而且由于切面要织入到代码底层,所以和jdk版本也有关 ,如果这个包版本过低,有可能导致基于Annotation的aop切面报错

mybatis需要的模块  mybatis ——>mybatis-spring

mvc需要的  web——>webmvc ,mvc是依赖于web的

连接池这里采用阿里的druid,不多介绍 配置根据文档来

mysql驱动  , 主要是根据你的mysql版本来

jackson采用jackson 2.xx  尽量用稳定度高下载人数多的版本 

插件方面主要是分页 ,根据mybatis的版本决定   

 

这里直接把pom文件贴上 




  4.0.0

  develepe
  lazyKitten
  1.0-SNAPSHOT
  war

  
  
  

  

    
    4.3.12.RELEASE
    3.4.1
    1.3.1

    
    3.3.2
    2.4
    1.9
    1.3.1
    1.9.1
    2.7.4

    
    5.1.36
    
    1.0.11
    
    1.8

  

  
    

    
    
      org.springframework
      spring-core
      ${spring.version}
      
        
          
          
        
      
    

    
      org.springframework
      spring-beans
      ${spring.version}
    
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-context-support
      ${spring.version}
    

    
    
      org.springframework
      spring-aop
      ${spring.version}
      
        
          commons-logging
          commons-logging
        
      
    
    
      org.aspectj
      aspectjweaver
      1.8.9
    
    
      cglib
      cglib
      3.2.5
    

    
    
      org.springframework
      spring-tx
      ${spring.version}
    

    
    
      org.springframework
      spring-orm
      ${spring.version}
    
    
      org.springframework
      spring-oxm
      ${spring.version}
    

    
    
      org.springframework
      spring-test
      ${spring.version}
      provided
    

    

    
    
      org.mybatis
      mybatis
      ${mybatis.version}
    
    
      org.mybatis
      mybatis-spring
      ${mybatis-spring.version}
    
    

    
    
      com.alibaba
      druid

      ${druid.version}
    

    
    
      mysql
      mysql-connector-java
      ${mysql.driver.version}
      runtime
    

      
      
          org.springframework
          spring-web
          ${spring.version}
      
      
          org.springframework
          spring-webmvc
          ${spring.version}
      

    

    
    
    
      org.apache.commons
      commons-lang3
      ${commons-lang3.version}
    
    
      commons-io
      commons-io
      ${commons-io.version}
    
    
      commons-codec
      commons-codec
      ${commons-codec.version}
    
    
      commons-fileupload
      commons-fileupload
      ${commons-fileupload.version}
    
    
      commons-beanutils
      commons-beanutils
      ${commons-beanutils.version}
      
        
          commons-logging
          commons-logging
        
      
    

    
    
      com.fasterxml.jackson.core
      jackson-core
      ${jackson.version}
    
    
      com.fasterxml.jackson.core
      jackson-databind
      ${jackson.version}
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      ${jackson.version}
    
    
      com.fasterxml.jackson.module
      jackson-module-jaxb-annotations
      ${jackson.version}
    

    
    
      
      
      
    

    
    
      com.github.pagehelper
      pagehelper
      5.0.1
    
    
      com.github.jsqlparser
      jsqlparser
      0.9.5
    

    
    
      org.mybatis.generator
      mybatis-generator-core
      1.3.2
    

    

    
    
      javax.servlet
      servlet-api
      2.5
      provided
    

    
    
      junit
      junit
      4.12
      test
    
  

  
    lazyKitten
    
      

        
          
          org.mybatis.generator
          mybatis-generator-maven-plugin
          1.3.2
          
            
            src/main/resources/conf/mybatis/generator-config.xml
            true
            true
          
          
            
              Generate MyBatis Artifacts
              
                generate
              
            
          
          
            
              org.mybatis.generator
              mybatis-generator-core
              1.3.2
            
          
        

        
          maven-clean-plugin
          3.0.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.7.0
        
        
          maven-surefire-plugin
          2.20.1
        
        
          maven-war-plugin
          3.2.0
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
      
          
              org.apache.maven.plugins
              maven-compiler-plugin
              
                  8
                  8
              
          
      
  

  三.配置web项目

配置之前回顾一下,整个web项目的工作流程,我们的web项目 首先是放到 web容器上运行 , 在容器启动时,spring监听容器的启动,并且开始托管所有的bean,而后mvc的DispatcherServlet随之启动,监听http请求并做出响应

那么配置思路就很清晰了,

   首先是web.xml  放置spring上下文启动监听器,放置dispatcher   ,加入字符编码转换

同样的贴上配置文件




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


  
    cors
    com.xx.xx.common.filter.CorsFilter
  
  
    cors
    /*
  

  
  
    HiddenHttpMethodFilter
    org.springframework.web.filter.HiddenHttpMethodFilter
  
  
    HiddenHttpMethodFilter
    /*
  



  
    org.springframework.web.context.ContextLoaderListener
  
  
  
  
    contextConfigLocation
    classpath:conf/spring/applicationContext.xml
  

  
  
    DispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      
      classpath:conf/spring/spring-servlet.xml
    
    1
  
  
    
    DispatcherServlet
    
    /
  

容器已经配置了让spring加载上下文,dispatcher负责处理所有请求,那么接下来就是配置 spring配置,以及mvc的配置,项目中会要访问数据库,那么DAO连接层也相应的需要配置好

1. 先从spring配置开始

spring的配置主要从三个方面考虑 ,第一是 加载扫描Bean组建  ,第二是配置数据源,包括session和连接池 , 第三是配置事务

扫描bean的思路是分层扫描  , spring每个配置文件扫描到的bean都会运用到当前properties里的配置

(监听器加载a.properties 这里做全局配置,b.properties里扫描某个包下的bean配置事务,c.properties里扫描的某包下的bean不配置事务)

这里不做过多的分层拆分,spring 扫描管理项目java包下所有stereotype注解标注的注解的组件(比如@Component @Service @Controller @Repository等)  以及 所有配置mybatis的xml路径 与 扫描路径(xml定义好类的路径,扫描后会一起加入spring的容器管理,无需手动加入@MybatisDao注解),Controller排除掉,放到servlet的配置里去扫描

 

下面直接贴出spring配置




    Spring Configuration

    
    

    
    
        
    

    
    
        
        
        
        
        
        

        
        
        
        

        
        

        
        

        
        

        
        
        


        
        
    

    
    
         
        
            
                
                    
                        
                        
                            helperDialect=mysql
                        
                    
                
            
        
        
     
        
        
        
    

    
    
        
        
    

    
    
        
    


    
    
    



运用到了properties,做配置管理,避免修改时重复编译,贴上连接池的配置也可自行定义

jdbc.pool.init=3
jdbc.pool.minIdle=3
jdbc.pool.maxActive=300

 

 

2. mybatis配置





    
    
        
        

        
        

        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

3. mvc-servlet配置

  遇到两个问题,

 1.不开启下段配置,无法接收form-data类型的参数


    
    
        5242880
    

2.jackson 2.x的配置不生效 

贴上配置




    Spring MVC Configuration
    
    

    
    

    
    
        
        
        
    


    
    
    
    
        
            
                
                
                    
                        
                            text/html;charset=UTF-8
                            application/json;charset=UTF-8
                        
                    
                
                
                
                    
                        
                            text/html;charset=UTF-8
                            application/json;charset=UTF-8
                        
                    
                
            
        
    

    
    
        
        
            5242880
        
    

 

至此配置文件全部完成,剩下的搭建目录,生成实体,就可以了,之后玩web项目的其他功能,框架都会使用这一套,或另外部署一套spring boot。

你可能感兴趣的:(开发环境搭建)