Spring Boot内置SSM开发框架,减少了开发者使用Spring、Mybatis、MVC开发框架的难度,降低了集成多个开发框架的复杂性,只需要少量的配置代码,就能让项目运行起来。
ebook项目采用IntelliJ IDEA 2021版本,为方便读者构建项目,请读者下载同样的版本。
1、构建ebook项目
下面给出构建ebook项目的具体步骤。
(1)启动IDEA,在没打开任何项目的情况下,单击“New Project按钮”。如图6-1所示。

图 6-1 IDEA欢迎页面
在打开项目的情况下,选择“File—>New—>Project”命令。如图6-2所示。

图 6-2 新建Project项目
(2)左侧窗口项目类型选择“Spring Intializr”,右侧窗口输入项目信息,“Name”对应项目的名称,“Location”对应项目的存储位置,项目类型选择“Maven”,“Group”是项目组织的标识符,实际对应的是Java二级包的结构,“Artifact”是项目的标识符,对应项目的根目录,“Package name”对应的是Java三级包结构,JDK选择1.8版本,Java版本选择8,单击“Next”按钮。如图6-3所示。

图 6-3 创建ebook项目
(3)图6-4所示的对话框用于集成开发框架,“web”框架勾选Spring Web,该框架内置了MVC,“SQL”框架勾选JDBC API、MybatisFramework、MySQL Driver。单击“Finish”按钮,Template Englines勾选Thymeleaf,完成项目创建。

图 6-4 选择集成框架
创建完成,项目结构如图6-5所示。“EbookApplication”是启动类,“application.properties”是配置文件。“Java”目录存储Java代码,“resources”目录存储项目资源文件。

图 6-5 ebook项目结构
2、 建立目录
分别在“com.milihua.ebook”包下建立controller、dao、pojo、service包。在“resource”目录下建立mapper目录。目录结构如图6-6所示。

图 6-6项目结构
3、 配置数据库
在“5.3节解读Mybatis数据库开发框架”中,我们了解了MyBatis的数据层技术架构。MyBatis会自动创建三类文件:一类文件是实体文件,也就是每个数据库表对应的类文件,该类文件一般存放到pojo目录下;一类文件是数据层接口文件,由业务层的业务类调用,该类文件一般存放到dao目录;一类文件是mapper文件,mapper文件是XML文件,该文件是DAO接口的实现文件,该类文件一般存放到mapper目录。
MyBatisGenerator插件可以自动生成相关代码,该插件并没有集成到MyBatis框架内,需要在pop.xml文件配置该插件,在<dependencies>节点内插入下面的代码。
<!-- mysql自动生成实体类--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency>
配置完成后,单击窗口右侧Maven标签项,展开Maven管理窗口,单击“Reload All Maven Projects”即可完成依赖文件的下载。
建立MyBatis代码自动生成类,该类调用MyBatis的MyBatisGenerator类来自动生成数据库操作类和XML映射文件。在ebook项目的src目录com.milihua.ebook包下新建util包,在util包下新建GeneratorUtil.java类文件。
程序清单6.1 GeneratorUtil.java
package com.milihua.ebook.util;
import org.mybatis.generator.api.ShellRunner;
public class GeneratorUtil {
public static void main(String[] args) {
args = new String[]{"-configfile", "src\\main\\resources\\mybatis-generator.xml", "-overwrite"};
ShellRunner.main(args);
}
}代码自动生成插件需要从配置文件中读取数据库的访问地址、登录账号和密码,还需要从配置文件中读取数据库的哪些表需要生成entity类、DAO接口类和Mapper实现类,以及这些类存储到什么位置。配置文件为mybatis-generator.xml,在项目的resources目录下新建mybatis-generator.xml文件。
配置文件清单 mybatis-generator.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true" /> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <!-- 这个注释是generator的注释。不是建表时手输的,没什么卵用--> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库链接URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ebook?characterEncoding=utf-8&serverTimezone=UTC" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 设置Java类生成的位置 --> <javaModelGenerator targetPackage="com.milihua.ebook.pojo" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成映射文件的包名和位置 ***mapper.xml--> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置 ***mapper.java--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.milihua.ebook.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 所有要生成的表名 --> <table tableName="mbook"></table> <table tableName="morder"></table> <table tableName="muser"></table> </context> </generatorConfiguration>
注意:配置文件的数据库访问路径和相关物理路径,与数据库部署和项目路径有关,请根据数据库部署和项目路径情况修改。
配置文件配置完成后,运行GeneratorUtil类文件。GeneratorUtil类会根据配置文件内容自动创建数据库操作类和XML映射文件。如图6-22所示。

图 6-7 插件自动创建的类文件
4、 编辑配置文件
resource目录下的“application.properties”为项目的配置文件,在配置文件内可以配置数据库的连接、包扫描路径等配置项。
配置文件清单 application.properties
#数据库相关配置 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/ebook?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 #Mybatis配置 #配置映射文件 mybatis.mapper-locations=classpath:mapper/*.xml #配置实体类 mybatis.type-aliases-package=com.milihua.ebook.pojo # servlet配置 server.tomcat.uri-encoding=UTF-8 server.servlet.encoding.charset=UTF-8 server.servlet.encoding.enabled=true server.servlet.encoding.force=true spring.messages.encoding=UTF-8
5、 配置应用类
com.milihua.ebook包下的“EbookApplication.java”是项目的应用类,运行该类即可启动SpringBoot服务。
需要在该类配置Mybatis的DAO接口扫描路径,配置代码如下:
@SpringBootApplication
@MapperScan("com.milihua.ebook.dao")
public class EbookApplication {
public static void main(String[] args) {
SpringApplication.run(EbookApplication.class, args);
}
}6、运行SpringBoot服务
所有配置完成后,运行“EbookApplication.java”,就可以启动SpringBoot服务了。在浏览器输入“localhost:8080”,可以看到SpringBoot因找不到默认映射页面而返回的错误页面。
若8080端口被其它程序占用,服务器启动会失败,在这种情况下,修改application.properties配置文件,在servlet配置节下面添加下面的语句:
server.port=8089
将服务端口修改为8089或其它端口号。