虽然现在SpringBoot框架能帮助我们减少很多必要的配置工作,采用约定大于配置的配置方式,但是通过这种方式不利于新人知道他究竟帮我们完成了哪些工作,也不利于问题的排查,所以,我们还是最好自己搭建一遍SSM框架来熟悉相关的配置。
下面我们就使用IDEA配合Maven一步一步的搭建一个SSM框架,并集成Restful风格和swagger。
首先介绍一下swagger,swagger是一种能通过我们按规范写在controller上的注释,生成相应的API文档,并能模拟我们所需要的如post、delete等接口请求,帮助后端人员完成单元
打开IDEA,点击File→New→Project,选择Maven,不勾选Create from archetype,这样会直接帮我们生成对应的目录。
点击Next,进入如下界面,输入对应的信息。
再点击Next,选择你要放置的文件目录。
点击Finish,就完成一个空的Maven工程的搭建了。然后在界面右下角的弹框这选择Enable Auto-Import
如果没有左侧的工程目录,则点击窗口最上方View→Tool Windows→Project。
右键左侧项目名,选择Add FrameWork Support,再弹出的界面选择Web Application,添加Web依赖,再点击OK。
然后在java目录下创建一些包,最后我们看到如下的工程目录:
首先,引入相关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,进入配置界面
选择Artifacts,右键如图所示,选择Put into output Root
然后点击右上角箭头所示位置,选择Edit Configuration,进入如图界面,再选择Deployment,点击+号,选择Artifact
最后启动项目,再浏览器路径后加上swagger-ui.html则可以进入Swagger的页面,如图所示:
至此,我们的项目就已经搭建好了,也是新手,不妥之处,请大家评论指出。
项目下载地址:空的的SSM项目