从无到有搭建SSM框架

从无到有搭建SSM框架

  虽然现在SpringBoot框架能帮助我们减少很多必要的配置工作,采用约定大于配置的配置方式,但是通过这种方式不利于新人知道他究竟帮我们完成了哪些工作,也不利于问题的排查,所以,我们还是最好自己搭建一遍SSM框架来熟悉相关的配置。

  下面我们就使用IDEA配合Maven一步一步的搭建一个SSM框架,并集成Restful风格和swagger。

  首先介绍一下swagger,swagger是一种能通过我们按规范写在controller上的注释,生成相应的API文档,并能模拟我们所需要的如post、delete等接口请求,帮助后端人员完成单元

使用Maven构建Web项目

  打开IDEA,点击File→New→Project,选择Maven,不勾选Create from archetype,这样会直接帮我们生成对应的目录。

从无到有搭建SSM框架_第1张图片

    点击Next,进入如下界面,输入对应的信息。

从无到有搭建SSM框架_第2张图片

  再点击Next,选择你要放置的文件目录。

从无到有搭建SSM框架_第3张图片

  点击Finish,就完成一个空的Maven工程的搭建了。然后在界面右下角的弹框这选择Enable Auto-Import

从无到有搭建SSM框架_第4张图片

  如果没有左侧的工程目录,则点击窗口最上方View→Tool Windows→Project。

  右键左侧项目名,选择Add FrameWork Support,再弹出的界面选择Web Application,添加Web依赖,再点击OK。

    从无到有搭建SSM框架_第5张图片

  然后在java目录下创建一些包,最后我们看到如下的工程目录:

    从无到有搭建SSM框架_第6张图片

SSM框架的配置

首先,引入相关Maven依赖,pom文件如下:



    4.0.0


    com.cjw
    SSM
    1.0-SNAPSHOT


    
        4.3.7.RELEASE
        3.4.2
        1.3.1
        0.9.1
        5.1.41
        1.3.6
        5.0.0
        1.7.5
        2.8.8
        4.12
    
    
        
            junit
            junit
            ${junit.version}
            test
        


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




        
        
        
            org.springframework
            spring-aspects
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
        
        
            org.springframework
            spring-test
            ${spring.version}
            test
        


        
        
        
            org.mybatis
            mybatis
            ${mybatis.version}
        


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


        
        
        
            c3p0
            c3p0
            ${c3p0.version}
        


        
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
        
            io.springfox
            springfox-swagger2
            2.8.0
        
        
            io.springfox
            springfox-swagger-ui
            2.8.0
        
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
        
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson-databind.version}
        
        
            com.fasterxml.jackson.core
            jackson-databind
            ${jackson-databind.version}
        
        
            com.fasterxml.jackson.core
            jackson-annotations
            ${jackson-databind.version}
        
    
    
        
            
                
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.5
                
                    ${basedir}/src/main/resources/generatorConfig.xml
                    true
                    true
                
                
                    
                        mysql
                        mysql-connector-java
                        ${mysql.version}
                    
                    
                        tk.mybatis
                        mapper
                        3.4.3
                    
                
            
        
    

    等待Maven自动下载对应的jar包。

    紧接着,创建对应配置文件,相关配置文件都放在在src/main/resources下。

    首先创建数据库配置文件,右键resources,New→File,输入文件名为:dbconfig.properties,包含数据库的驱动和一些连接配置,配置如下:

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/Test?useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=111111

    然后创建spring配置文件,右键resources,New→XML Configuration File→Spring Config,输入文件名为application,该配置文件下,我们用于开启注解,整合Mybatis以及相关事务,配置文件如下:




    
        
    
    
    

    
        
        
        
        
    

    
    
        
        
        
        
        
    

    
    
        
        
    

    
    
        
        
    

    
    
        
        
    
    
        
        
        
        
    

    
    
        
            
            
        
    

再创建mybatis配置文件为mybatis-config.xml,配置文件如下:




    
        
    

    
    
        
    
    

    再创建逆向工程配置文件,逆向工程能够帮助我们节省很多重复的xml文件的书写,在resources下创建逆向工程配置文件为generatorConfig.xml,配置文件内容如下:





    
    
        
        
            
        
        
        
        

        
            
        

        
        
            
            
        

        
        
            
        

        
        
            
        

        
        
    这样我们就可以使用maven插件生成数据层的对应文件了,具体使用:点击界面左下角,选择Maven Projects,然后在右侧点击项目名,点击Plugs,找到mybatis-generator,点击列表第一个,就可以根据配置文件自动去生成文件了。

    再创建springmvc配置文件为spring-mvc.xml,配置文件如下:




    
    
        
        
    

    
    
        
        
    
    
    
    
    
    

    再创建日志配置文件,其中数据库输出,只需创建对应字段,类型varchar就行,配置文件如下:

log4j.rootLogger=INFO,appender1,appender2,appender3
# org.springframework包下面所有的日志输出的级别设为DEBUG 
log4j.logger.org.springframework=DEBUG
# 控制台输出
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
# 文件输出,这里默认为追加方式 
log4j.appender.appender2=org.apache.log4j.FileAppender
log4j.appender.appender2.File=log/LogMonitor.log
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss:SSS}[%p]: %m%n
# 数据库输出 
log4j.appender.appender3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.appender3.database.BufferSize=10
log4j.appender.appender3.driver=com.mysql.jdbc.Driver
log4j.appender.appender3.URL=jdbc:mysql://127.0.0.1:3306/test
log4j.appender.appender3.user=root
log4j.appender.appender3.password=111111
log4j.appender.appender3.sql=insert into log(level,category,thread,time,location,note) values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m') 

    配置swagger,采用java配置,在config包下,创建SwaggerConfig类,配置内容如下:

package com.ssm.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("SSM-Swagger")
                .description("SSM简单Demo")
                .termsOfServiceUrl("https://blog.csdn.net/qq_28131641")
                .version("1.0")
                .build();
    }
}

    最后,修改web.xml配置,用于加载相关配置文件,配置文件如下:



    
    
        contextConfigLocation
        classpath:application.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        dispatcher
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
    
    
        dispatcher
        /
    
    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceRequestEncoding
            true
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    

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

写一个简单的测试接口如下:

package com.ssm.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/test")
@Api(description = "测试")
public class TestController {
    //获得所有用户信息列表
    @GetMapping(value = "test")
    @ApiOperation(value = "普通查询")
    public String getUserInfoList() {
        return "Hello SSM";
    }
}

IDEA配置下tomcat

点击如图所示structure,进入配置界面

从无到有搭建SSM框架_第7张图片

选择Artifacts,右键如图所示,选择Put into output Root

从无到有搭建SSM框架_第8张图片

    然后点击右上角箭头所示位置,选择Edit Configuration,进入如图界面,再选择Deployment,点击+号,选择Artifact

从无到有搭建SSM框架_第9张图片

最后启动项目,再浏览器路径后加上swagger-ui.html则可以进入Swagger的页面,如图所示:

从无到有搭建SSM框架_第10张图片

至此,我们的项目就已经搭建好了,也是新手,不妥之处,请大家评论指出。

项目下载地址:空的的SSM项目

你可能感兴趣的:(Java)