ssm多模块搭建+Swagger+postman测试
1.多模块搭建
为什么要分模块开发?
以前 ssm 结构:
不好的地方: (1)随着业务的增加, mapper 或者 service类 越来越多 ,项目越来越庞大,项目有点臃肿 -->拆分多个模块
(2)项目代码越来越多, 构建 或者编译, 变得很慢很慢 -->拆分
(3)有些内容,公共的内容 ,有很多项目都可能使用,有必要-- 抽取到公共maven模块
(4)有些内容, 不想让每个人都可以修改 – 抽取到公共的maven模块 util
(5)随着项目业务需求的怎么 ,pom.xml的内容也会变得很长
一般中大型项目 都在使用分模块开发
效果图:
1.1:
抽取公共的内容,把它放在core模板里面去
1.2:
创建一个工具模板
1.3:
创建一个公共模板
1.4:
创建mapper模板
1.5:
创建业务模板,放入业务代码
1.6:
创建web项目模板(包含applicationContext-mvc.xml)
1.7:pom.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itsource</groupId>
<artifactId>crm_parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>basic_core</module>
<module>basic_util</module>
<module>crm_common</module>
<module>crm_mapper</module>
<module>crm_service</module>
<module>crm_web</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- spring版本号 -->
<spring.version>4.1.2.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.1</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.2</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<!-- jackson包版本 -->
<jackson.version>2.5.0</jackson.version>
<!--swagger版本-->
<springfox.version>2.4.0</springfox.version>
</properties>
<dependencies>
<!--Spring核心-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<!--aop依赖包-->
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
</dependencies>
</project>
2.Swagger
和spring整合,根据controller 生成的接口的文档 ,通过页面访问
给前端看的…
2.1在pom.xml中配置版本号:
2.2在web pom.xml中配置包:
2.3生成配置代码:
package cn.itsource.crm.web.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration //相当于写一个配置文件 application.xml
@EnableWebMvc // 开启springmvc
@EnableSwagger2 //开启swagger2
@ComponentScan(basePackages="cn.itsource.crm.web.controller")
public class SwaggerConfig {
//相当于 <bean ><property name=""> </bean>
@Bean
public Docket api(){
//生成接口信息
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(this.apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.itsource.crm.web.controller"))
.paths(PathSelectors.any())
.build();
}
//api的 注解 javaweb 文档的描述信息
private ApiInfo apiInfo(){
@SuppressWarnings("deprecation")
ApiInfo info=new ApiInfo(
"API接口测试文档",
"接口测试",
"1.0",
"http://www.itsource.cn",
"itsource",
"111",
"http://www.itsource.cn");
return info;
}
}
3.postman
下载postman:官网下载即可
最后在postman中测试即可: