一、SpringBoot 简介
简化 Spring 应用的初始搭建以及开发过程。从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。
以前要手动搭建 ssm 框架的时候,要配置一堆东西,麻烦的一批。用 SpringBoot 搭建的话,很多东西都自动配置好了,爽的一批。
二、通过 SpringBoot 创建工程
方式一:浏览器访问 https://start.spring.io/,填写项目信息,点击 Generate Project 将项目文件下载到本地,导入IDE即可。
方式二:如果使用 IntelliJ IDEA,可以直接在里面创建工程(太方便了⑧),本文用的是此方法。
首先运行 IntelliJ IDEA,选择 Create New Project,在左侧选择 Spring Initializr,下一步(其实也是从 Spring 官网上创建,不过集成到 IDE 里了,更加方便)
选择要导入的包(看右侧 Selected Dependencies)
DevTools:方便 debug 的一个工具,可以配置热加载,省的每次修改代码后都要重启服务
Web:集成了 Tomcat 和 SpringMVC
MySQL:数据库连接驱动
MyBatis:顾名思义
注:我打算使用阿里的数据源,所以没有勾选JDBC,想用JDBC的可以勾选。
设置项目名称及存放位置
至此就创建好了。根据勾选的依赖,它会自动帮你生成 pom.xml 的内容。等待 maven 导包完成后,工程目录如下图所示:
- SpringbootSsmApplication 是程序运行的入口
- application.properties 是程序的配置文件(默认是空的)
- resources/static 用于存放网站静态文件
- resources/templates 用于存放网站模板文件 (要引入thymeleaf模板引擎)
- test目录下放置测试单元
手动打开 pom.xml ,引入阿里巴巴数据库连接池
1 | <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> |
因为创建的是 web 项目,还需要导入下面的包,让其支持 jsp文件的解析和 jstl 表达式。
注:如果不引入 jsp 解析器,跳转 jsp 的时候会直接变成下载 jsp 文件,无法直接显示页面。
1 | <!-- tomcat的jsp解析器 --> |
由于我习惯于把 Mybatis 的 Mapper 和其 interface 类放在同一个 dao 包下,并且 IDEA 默认不编译 Resources 以外的 XML 文件,如果 MyBatis Mapper 放在 Resources 以外,需要加上以下代码让 IDEA 编译 (在 <build>
块里面加)
1 | <build> |
在 main 下创建 webapp 文件夹用于存放网站文件,并在 IDEA 里设置其为网站资源目录(不设置的话 IDEA 不知道,你没法在右键菜单里新建 jsp 等等的文件..)
程序入口的 @SpringBootApplication
注解会自动帮我们扫描当前包下及其子包里的 bean (使用 @Component
、@Controller
、@Service
、@Repository
注解了的类),所以我直接在该入口所在的包建立三层结构的子包
基本结构就系这样,下面开始配置 MyBatis 和 SpringMVC。
三、配置工程
SpringBoot 主张无 XML 配置,所有的配置都在 application.properties
搞定(也支持 ymal 语法来配置,把配置文件的后缀 .properties 改成 .yml 就好,这里使用 .properties 配置)。
直接上代码
1 | #阿里巴巴数据源 |
注:可能会遇到
com.mysql.jdbc.Driver
报红的情况(找不到相应的包),解决方案是到 pom.xml 把 MySQL 的连接驱动的<scope>
去掉,这个是 SpringBoot 默认加的。
<scope>runtime</scope>
表示 在运行和测试系统的时候需要,但在编译的时候不需要。pom.xml
1
2
3
4
5
6 > <dependency>
> <groupId>mysql</groupId>
> <artifactId>mysql-connector-java</artifactId>
> <!--<scope>runtime</scope> 这个不要-->
> </dependency>
>
回去程序主入口,添加 @MapperScan("com.crazykid.springboot.web.springbootssm.dao")
注解,这个扫描的是 Mybatis Mapper 的 interface 接口。
1 | package com.crazykid.springboot.web.springbootssm; |
至此配置完成。
四、测试
请参考 这篇博文 的测试部分,大同小异。
源码下载:springboot-ssm.rar