Spring项目整合

No Repeating, Just Coding

最近用 Spring 写后台较多,每次新建一个项目要从原来项目里拷贝很多配置文件,因此就想整合一个配置好的的基本项目架构。Spring boot 融合了 tomcat, 使用后爱不释手,因此主要基于 Spring boot + MVC 以及一些其他必要功能进行配置使用。

说明


项目代码地址: https://github.com/jiyiren/SpbootApi

这个仓库主要是集成 Spring-boot, Spring-mvc, Mysql, Mybatis, C3p0, Swagger2 的项目架构,为便于每次新建项目不用从零开始,直接基于此项目结构可快速地进行项目二次开发,免去了 pom 内容的复制和配置文件的编写。

整体项目结构

项目结构

Swagger API UI 页面

默认访问地址: http://127.0.0.1:8899/swagger-ui.html

SwaggerUi

Demo接口

测试接口: http://127.0.0.1:8899/user/1

json

二次开发实践


下载项目:

1
git clone https://github.com/jiyiren/SpbootApi.git

命令运行项目:

1
2
cd SpbootApi
mvn spring-boot:run

IDE 运行项目 ( 推荐 Intellij IDEA ):

打开ApiApplication.class,内部包含main函数,右击 Run ApiApplication.

测试

访问:http://127.0.0.1:8899 返回 Hello World!

访问:http://127.0.0.1:8899/user/1 返回 json 数据

修改包名(下面为包含包名的文件)

  • resources/application.propertis : 项目总配置文件
  • java/包名/Swagger2.class : swagger-ui 配置文件
  • java/包名/c3p0/C3p0AutoConfiguration.class : c3p0 连接池配置文件

POM依赖包


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<!--properties-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<jacksonVersion>2.8.8</jacksonVersion>
<c3p0Version>0.9.5.2</c3p0Version>
</properties>
<dependencies>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--jdbc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--aop-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mysql包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--jackson包 jackson-core,jackson-databind,jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jacksonVersion}</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- c3p0 和 mchange-commons-java -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>${c3p0Version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

参考

苟且一下