SSM之框架整合

SSM之框架整合_第1张图片

前言

SSM框架,即Spring + Spring MVC + MyBatis的整合框架集,是继SSH后比较主流的Java EE企业级框架,采用标准的MVC模式,项目结构与微软的ASP.NET MVC框架非常相似。本文主要结合Intellij IDEA和Maven实现SSM基础框架的搭建与优化。

环境

  • jdk-1.8.0
  • tomcat-8.6.8
  • maven-3.3.9
  • Intellij IDEA 2016

创建Maven项目

启动IDEA(IDEA的安装请参考IntelliJ IDEA 安装)。
点击"Create New Project"创建新项目

SSM之框架整合_第2张图片

选择右侧的"Maven",然后配置"Project SDK"为你本机的Java安装目录,接下来填写项目相关信息,创建一个基本的Maven项目

SSM之框架整合_第3张图片
SSM之框架整合_第4张图片
SSM之框架整合_第5张图片

项目创建完成后,点击右下角的"Enable Auto-Import"以自动导入相关依赖

SSM之框架整合_第6张图片

接下来须设置项目的Maven设置(每次新建Maven项目都需重新配置),同时按Ctrl+Alt+S打开设置面板,找到Maven配置界面,将"Maven home directory"修改为本机Maven安装目录

SSM之框架整合_第7张图片

一个基本的Maven环境已经搭建完成,下面开始整合SSM框架。

整合SSM框架

POM.xml

POM是项目对象模型(Project Object Model)的简称,pom.xml是Maven的核心配置文件。一个Maven项目必须包含pom.xml配置文件,文件中包括了与开发者有关的,缺陷跟踪系统,组织与许可,项目的URL,项目依赖,以及其他与这个项目相关的东西。

以下是本文项目的pom.xml配置文件:



    4.0.0
    war
    com.zkh
    ssm
    1.0-SNAPSHOT
    ssm
    http://localhost:8081/ssm

    
        ssm
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.6
                    1.6
                
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.2
                
                    true
                    true
                
            
        
    

    
        UTF-8
        4.3.7.RELEASE
        2.9.0.pr1
    

    
        
            junit
            junit
            3.8.1
            test
        

        
        
            com.fasterxml.jackson.core
            jackson-annotations
            ${jackson.version}
        
        
            com.fasterxml.jackson.core
            jackson-core
            ${jackson.version}
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson.version}
        
        
            org.codehaus.jackson
            jackson-core-lgpl
            1.9.13
        
        
            org.codehaus.jackson
            jackson-mapper-lgpl
            1.9.13
        

        
        
            com.sun.mail
            javax.mail
            1.5.6
        

        
        
            log4j
            log4j
            1.2.17
        
        
            org.apache.logging.log4j
            log4j-api
            2.8.1
        
        
            org.apache.logging.log4j
            log4j-core
            2.8.1
        

        
        
            mysql
            mysql-connector-java
            6.0.6
        
        
            com.mchange
            mchange-commons-java
            0.2.12
        

        
        
            org.slf4j
            slf4j-api
            1.7.24
        
        
            org.slf4j
            slf4j-log4j12
            1.7.24
        

        
        
            org.mybatis
            mybatis
            3.4.2
        
        
            org.mybatis
            mybatis-ehcache
            1.0.0
        
        
            org.mybatis
            mybatis-spring
            1.3.1
        

        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-beans
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-context-support
            ${spring.version}
        
        
            org.springframework
            spring-core
            ${spring.version}
        
        
            org.springframework
            spring-expression
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            org.springframework
            spring-orm
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        

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

        
        
            javax.validation
            validation-api
            2.0.0.Alpha1
        
        
            org.hibernate.validator
            hibernate-validator
            6.0.0.Alpha1
        

        
        
            javax.servlet
            servlet-api
            2.5
            provided
        

        
        
            javax.el
            javax.el-api
            3.0.1-b04
        

        
        
            org.glassfish.web
            jstl-impl
            1.2
        

        
        
            com.alibaba
            druid
            1.0.28
        
        
            com.alibaba
            fastjson
            1.2.28.odps
        

        
        
            com.github.pagehelper
            pagehelper
            5.0.0
        

        
        
            org.apache.shiro
            shiro-core
            1.2.5
        
        
            org.apache.shiro
            shiro-web
            1.2.5
        
        
            org.apache.shiro
            shiro-spring
            1.2.5
        

        
            aopalliance
            aopalliance
            1.0
        
        
            org.aspectj
            aspectjweaver
            1.8.10
        
        
            cglib
            cglib
            3.2.5
        
        
            com.fasterxml
            classmate
            1.3.3
        
        
            commons-fileupload
            commons-fileupload
            1.3.2
        
        
            org.apache.commons
            commons-io
            1.3.2
        
        
            commons-logging
            commons-logging
            1.2
        
        
            org.apache.commons
            commons-pool2
            2.4.2
        
        
            org.dom4j
            dom4j
            2.0.0
        
        
            org.ehcache.modules
            ehcache-core
            3.3.0
        
        
            org.javassist
            javassist
            3.22.0-CR1
        
        
            org.jboss.logging
            jboss-logging
            3.3.0.Final
        
    

springmvc.xml

SpringMVC配置文件:




    
    

    
    
        
        
    

    
    

    
    
        
        
        
    
    
    
        
        
            
                classpath:ValidationMessages
            
        
        
        
        
        
    

    
    

    
    
        
        
        
        
        
        
    

    
    

    
    
        
            
            
            
        
    

    
    
        
            
                application/json;charset=UTF-8
            
        
    


applicationContext-dao.xml

数据访问接口层配置文件,包含spring与mybatis的整合配置及数据源配置。这里使用了阿里巴巴的Druid连接池以及开源的分页插件PageHelper,Druid可以说是目前最好的数据库连接池,PageHelper可以简化分页功能开发,关于Druid和PageHelper的完整配置会在后面的文章介绍,当然你也可以使用c3p0连接池代替,配置文件里包含c3p0的配置方式。




    
    

    
    
    
    
    
    
    

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
        
        
            
                
                
                    
                        
                            helperDialect=mysql
                            reasonable=true
                            supportMethodsArguments=true
                            params=count=countSql
                            autoRuntimeDialect=true
                            pageSizeZero=true
                        
                    
                
            
        
    

    
    
        
        
    



sqlMapConfig.xml

Mybatis配置文件:





    
    

    
        
        
        
        
        
    

    
    
        
        
    


web.xml



    ssm

    
        login.action
    

    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring/springmvc.xml
        
    
    
        springmvc
        *.action
    

    
    


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

    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        CharacterEncodingFilter
        /*
    


Mapper和pojo

Mapper文件和pojo实体类可以借助"mybatis-generator"自动生成工具生成,关于mybatis-generator的使用请自行Google。

项目结构

以上只是一些最核心的配置文件说明,完整代码已发布在Github上,地址在本文末尾,最终项目结构效果如下:

SSM之框架整合_第8张图片

Tomcat配置

点击菜单栏Run->Edit Configurations...

SSM之框架整合_第9张图片

在Run面板左上方添加,选择Tomcat Server->Local

SSM之框架整合_第10张图片

接下来配置Name(可随意)、Tomcat安装路径、jre安装路径

SSM之框架整合_第11张图片

然后打开Deployment标签页,配置使当前项目自动打包并添加到服务器中

SSM之框架整合_第12张图片
SSM之框架整合_第13张图片

现在可以运行测试你的WEB项目了,按Shift+F10运行应用,Shift+F9可进行应用调试。

运行效果

SSM之框架整合_第14张图片
SSM之框架整合_第15张图片
SSM之框架整合_第16张图片
SSM之框架整合_第17张图片
SSM之框架整合_第18张图片

总结

以上为最基本的SSM整合框架环境搭建,开发过ASP.NET MVC的同学可能会有一种似曾相识的感觉,因为它们真的太像了。之后会向项目中添加一些插件以提高开发效率及应用性能。

具体代码已发布在Github上,地址:SSM

本文为作者kMacro原创,转载请注明来源:http://www.jianshu.com/p/b6b1ec6b1816。

你可能感兴趣的:(SSM之框架整合)