# 教你优雅的入门Spring Boot2.x
**如果觉得不错就点击右上角star鼓励一下笔者吧(#^.^#)**
**技术栈**
* 后端: SpringBoot2.x + Mybatis
* 前端: Vue.JS2.x + ElementUI
**测试环境**
* IDEA + SpringBoot-2.0.5
**启动说明**
* 启动前,请配置好 [application.yml](https://github.com/TyCoding/spring-boot/blob/master/src/main/resources/application.yml) 中连接数据库的用户名和密码,以及Redis服务器的地址和端口信息。
* 启动前,请创建数据库`seckill`,建表SQL语句放在:[/db/sys_schema.sql](https://github.com/TyCoding/spring-boot/blob/master/db/sys_schema.sql)。具体的建表和建库语句请仔细看SQL文件。
* 配置完成后,运行位于 `src/main/cn/tycoding/`下的SpringbootApplication中的main方法,访问 `http://localhost:8080/` 进行API测试。
**项目设计**
```
.
├── README
├── README.md
├── db
├── mvnw
├── mvnw.cmd
├── pom.xml
├── spring-boot.iml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── cn
│ │ │ └── tycoding
│ │ │ ├── SpringbootApplication.java -- Spring Boot启动器类
│ │ │ ├── controller -- MVC-WEB层
│ │ │ ├── entity -- 实体类
│ │ │ ├── interceptor -- 自定义拦截器
│ │ │ ├── mapper -- mybatis-Mapper层映射接口,或称为DAO层
│ │ │ └── service -- service业务层
│ │ └── resources -- Spring Boot资源文件目录
│ │ ├── application.yml -- Spring Boot核心配置文件
│ │ ├── mapper -- Mybatis Mapper层XML配置文件
│ │ ├── static -- 前端静态文件(主要是JS、CSS、Image文件,一般不放HTML页面)
│ │ │ ├── css
│ │ │ ├── image
│ │ │ ├── js
│ │ │ ├── lib
│ │ └── templates -- Thymeleaf模板引擎识别的HTML页面目录,存放HTML页面(相当于之前的WEB—INF目录,即不能通过浏览器直接访问)
│ └── test
```
# 准备
开始实战Spring Boot项目,首先,你需要将Spring Boot工程搭建出来。
Spring Boot工程搭建请看我的博客:[Spring Boot入门之工程搭建](http://tycoding.cn/2018/09/28/spring-boot/)
## Spring Boot应用启动器
Spring Boot提供了很多应用启动器,分别用来支持不同的功能,说白了就是`pom.xml`中的依赖配置,因为Spring Boot的自动化配置特性,我们并不需再考虑项目依赖版本问题,使用Spring Boot的应用启动器,它能自动帮我们将相关的依赖全部导入到项目中。
我们这里介绍几个常见的应用启动器:
* `spring-boot-starter`: Spring Boot的核心启动器,包含了自动配置、日志和YAML
* `spring-boot-starter-aop`: 支持AOP面向切面编程的功能,包括spring-aop和AspecJ
* `spring-boot-starter-cache`: 支持Spring的Cache抽象
* `spring-boot-starter-artermis`: 通过Apache Artemis支持JMS(Java Message Service)的API
* `spring-boot-starter-data-jpa`: 支持JPA
* `spring-boot-starter-data-solr`: 支持Apache Solr搜索平台,包括spring-data-solr
* `spring-boot-starter-freemarker`: 支持FreeMarker模板引擎
* `spring-boot-starter-jdbc`: 支持JDBC数据库
* `spring-boot-starter-Redis`: 支持Redis键值储存数据库,包括spring-redis
* `spring-boot-starter-security`: 支持spring-security
* `spring-boot-starter-thymeleaf`: 支持Thymeleaf模板引擎,包括与Spring的集成
* `spring-boot-starter-web`: 支持全栈式web开发,包括tomcat和Spring-WebMVC
* `spring-boot-starter-log4j`: 支持Log4J日志框架
* `spring-boot-starter-logging`: 引入Spring Boot默认的日志框架Logback
## Spring Boot项目结构设计
Spring Boot项目(即Maven项目),当然拥有最基础的Maven项目结构。除此之外:
1. Spring Boot项目中不包含webapp(webroot)目录。
2. Spring Boot默认提供的静态资源目录需要置于classpath下,且其下的目录名称要符合一定规定。
3. Spring Boot默认不提倡用XML配置文件,主张使用YML作为配置文件格式,YML有更简洁的语法。当然也可以使用.properties作为配置文件格式。
4. Spring Boot官方推荐使用Thymeleaf作为前端模板引擎,并且Thymeleaf默认将templates作为静态页面的存放目录(由配置文件指定)。
5. Spring Boot默认将`resources`作为静态资源的存放目录,存放前端静态文件、项目配置文件。
6. Spring Boot规定`resources`下的子级目录名要符合一定规则,一般我们设置`resources/static`为前端静态(JS,CSS)的存放目录;设置`resources/templates`作为HTML页面的存放目录。
7. Spring Boot指定的Thymeleaf模板引擎文件目录`/resources/templates`是受保护的目录,这与之前的WEB项目的WEB-INF文件夹和类似,特点就是里面的静态资源不能直接访问,一般我们通过Controller映射访问。
8. 建议将Mybatis-Mapper的XML映射文件放于`resources/`目录下,我这里设为`resources/mapper`目录,且`src/main/java/Mapper`下的Mapper层接口要使用`@Mapper`注解标识,不然mybatis找不到接口对应的XML映射文件。
9. `SpringBootApplication.java`为项目的启动器类,项目不需要部署到Tomcat上,由SpringBoot提供的服务器部署项目(运行启动器类即可);且SpringBoot会自动扫描该启动器同级和子级下用注解标识的Bean,也就是之前我们配置的`<context:component-scan>`在SpringBoot中是完全不需类似的配置的。
10. Spring Boot不建议使用JSP页面,如果想使用,请自行百度解决办法。我们常用HTML页面+Thymeleaf模板引擎。Thyemeleaf模板引擎提供了很多内置语法,比如:可以通过`<div th:text="${xx}">`取出来后端存放在域对象中的数据。
11. 上面说了Spring Boot提供的存放HTML静态页面的目录`resources/templates`是受保护的目录,访问其中的HTML页面要通过Controller映射,这就间接规定了你需要配置Spring的视图解析器,且Controller类不能使用`@RestController`标识。
# 起步
*首先:* **我想特殊强调的是:SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式**。一定要切记这一点。
学习SpringBoot框架,只是为了更简便的使用Spring框架,我们在SSM阶段学习的知识现在放在Spring Boot框架上开发是完全适用的,我们学习的大多数是SpringBoot的自动化配置方式。
因为Spring Boot框架的一大优势就是自动化配置,从pom.xml的配置中就能明显感受到。
所以这里推荐一下我之前的SSM阶段整合项目: [SSM详细入门整合案例](https://github.com/TyCoding/ssm) [SSM+Redis+Shiro+Solr+Vue.js整合项目](https://github.com/TyCoding/ssm-redis-solr)
## 项目依赖
本项目的依赖文件请看Github仓库:[spring-boot/pom.xml](https://github.com/TyCoding/spring-boot/blob/master/pom.xml)
## 初始化数据库
本项目数据库表设计请看GitHub仓库:[spring-boot/db/](https://github.com/TyCoding/spring-boot/tree/master/db)
请运行项目前,先把数据库表结构建好
## SpringBoot整合Mybatis
之前已经说过:**SpringBoot框架不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式**
所以说,SpringBoot整合Mybatis的思想和Spring整合Mybatis的思想基本相同,不同之处有两点:
* 1.Mapper接口的XML配置文件变化。之�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
springboot与shiro密码加密,mybatis,redis的整合项目 (1848个子文件)
LoginController.class 5KB
UploadDownController.class 3KB
SpringbootApplication.class 3KB
ShiroConfig.class 3KB
PeopleController.class 3KB
GoodsController.class 3KB
PeopleServiceImpl.class 2KB
GoodsServiceImpl.class 2KB
JsonUtils.class 2KB
UserRealm.class 2KB
MyInterceptor.class 2KB
UserServiceImpl.class 2KB
User.class 1KB
Goods.class 1KB
People.class 1KB
Result.class 963B
PageBean.class 882B
UserController.class 873B
HomeController.class 830B
PeopleMapper.class 816B
GoodsMapper.class 807B
UserMapper.class 702B
SpringbootApplicationTests.class 652B
BaseService.class 566B
PeopleService.class 422B
GoodsService.class 417B
UserService.class 369B
.classpath 1KB
mvnw.cmd 5KB
config 306B
index.css 193KB
index.css 193KB
index.css 193KB
index.css 193KB
font-awesome.min.css 32KB
font-awesome.min.css 32KB
transfer.css 26KB
transfer.css 26KB
transfer.css 26KB
transfer.css 26KB
date-picker.css 26KB
date-picker.css 26KB
date-picker.css 26KB
date-picker.css 26KB
col.css 25KB
col.css 25KB
col.css 25KB
col.css 25KB
message-box.css 20KB
message-box.css 20KB
message-box.css 20KB
message-box.css 20KB
time-picker.css 20KB
time-picker.css 20KB
time-picker.css 20KB
time-picker.css 20KB
table.css 19KB
table.css 19KB
table.css 19KB
table.css 19KB
pagination.css 19KB
pagination.css 19KB
pagination.css 19KB
pagination.css 19KB
slider.css 16KB
slider.css 16KB
slider.css 16KB
slider.css 16KB
tabs.css 16KB
tabs.css 16KB
tabs.css 16KB
tabs.css 16KB
select.css 15KB
select.css 15KB
select.css 15KB
select.css 15KB
dropdown.css 14KB
dropdown.css 14KB
dropdown.css 14KB
dropdown.css 14KB
time-select.css 13KB
time-select.css 13KB
time-select.css 13KB
time-select.css 13KB
tree.css 13KB
tree.css 13KB
tree.css 13KB
tree.css 13KB
upload.css 12KB
upload.css 12KB
upload.css 12KB
upload.css 12KB
button.css 10KB
button.css 10KB
button.css 10KB
button.css 10KB
table-column.css 10KB
table-column.css 10KB
table-column.css 10KB
table-column.css 10KB
共 1848 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
愿永无996
- 粉丝: 11
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功