前言:最近再写一款视频播放器的后台,踩了很多坑,在此总结。
前提:搭建配置完好的Spring-MyBatis项目
1.流程分析,数据库设计(看似无用,真正做起来真的需要这个东西帮忙整理下思路)
2.dao层,mapper层,pojo层(可以自动生成),service层,impl层的编写
3.controll层的编写
流程图:
搭建Spring-Mybatis项目框架:(GitHub地址:https://github.com/XaiverHai/mybatis_spring)
项目结构:
各个目录层说明:由上往下(黑体的必备,其余的可以自定)
controller 控制层,和前端相联系,主要负责从页面获取数据,传递数据到页面。
dao 数据层,和数据库联系,对数据库进行增删改查接口的书写。
mapping dao层的配置文件,这一层在mybatis里面很重要,是对应dao层的数据库实现层,数据库逻辑都是写在里面,也可以写优化的数据库代码。
pojo 对应数据库的对象,也是dao层直接操作的对象,可以在这里面添加返回Json的toString()方法。这样返回的对象就可以直接为Json了。
service 中间层,也是服务层,用来写dao层的接口,处理逻辑。
service.impl 服务实现层,实现接口逻辑的,里面放的是实体类,判断是否为空等操作可以在这里面进行。
utils 通用公共层
src/main/resources目录 文件说明:
jdbc.properties 数据库配置文件,里面配置着数据库参数
log4j.properties 日志配置文件,可以在控制台或者文件里面输出日志文件,以便收取信息修正bug。
mybatis-properties mybatis配置文件,配置相关的内容。
spring-dao spring和mybatis的整合文件,这个文件将两个的配置完美结合了,也是关键。
spring-mvc 这个就是servlet的配置文件了,前端能不能正常跑起来这个很重要。
WebContent目录说明
WEB-INF 这里面的文件前端无法访问的,所以直接在地址上面输入这里面的文件怎么都是404,不配置的话只能后台调用
web.xml 关键文件,需要在里面配置DispatcherServerlet,配置过滤器以及监听。
pom.xml 这个不是这个目录里面的是外层目录,主要是maven的配置文件,拿着这个就不用苦逼的烤jar包了。
框架搭建(先搭建框架,再进行开发):
先创建maven项目,配置pom.xml
<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>MyBatisSpringMVC</groupId> <artifactId>MyBatisSpringMVC</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <url>http://maven.apache.org</url> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2.6</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!-- 表示开发的时候引入,发布的时候不会加载此包 --> <scope>test</scope> </dependency> <!-- spring核心包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.2.2</version> </dependency> <!-- JSTL标签类 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <!-- 格式化对象,方便输出日志 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.41</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> <!-- log end --> <!-- 映入JSON --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency> <!-- 上传组件包 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> </configuration> </plugin> </plugins> </build> </project>