一篇带你入门 Spring Boot。
Spring Boot 初识
本文主要讲述spring boot的由来,即其它诞生的背景,初衷,现状,及对未来的展望。
Spring Boot参考指南中文版--Chapter1.Spring Boot中文文档
本节提供一个Spring Boot参考文档的简明概述。你可以把它作为文档其余部分的导航。你可以从头到尾依次阅读该参考指南,或跳过你不感兴趣的章节。
Spring Boot QuickStart
Spring Boot 简化了基于 Spring 的应用开发,你只需要 "run" 就能创建一个独立的,产品级别的 Spring 应用。
Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数 Spring Boot 应用只需要很少的Spring 配置。你可以使用 Spring Boot 创建 Java 应用,并使用 java -jar 启动它或采用传统的 war 部署方式。
- 系统要求
- 安装
- 使用
- 配置
Spring Boot QuickStart (2) - 基础
基于 Spring Boot 创建一个命令行应用,先来个最基本的体验,体验一下:
- 配置管理(配置文件加载,多环境配置文件)
- 日志
- 单元测试
Spring Boot QuickStart (3) - Web & Restful
基于 Spring Boot 可以快速创建一个Web & Restful 应用。
- 注解
- 路由,方法
- 请求参数
- Cookie
- Session
- 模板引擎
- 常用配置
Spring Boot QuickStart (4) - Database
到了操作数据库的环节,以 MySQL 为基准,体验一下数据库的相关操作,JPA、MyBatis 将是学习重点。体验的基线:
- 单表。增、删、改、查(多条件组合查询、分页,排序等)
- 多表关联。一对一,一对多,多对多
Spring Boot QuickStart (5) - Spring Data JPA
Java Persistence API,可以理解就是 Java 一个持久化标准或规范,Spring Data JPA 是对它的实现。并且提供多个 JPA 厂商适配,如 Hibernate、Apache 的 OpenJpa、Eclipse的EclipseLink等。
spring-boot-starter-data-jpa 默认使用的是 Hibernate 实现。
在 SpringBoot + Spring Data Jpa 中,不需要额外的配置什么,只需要编写实体类(Entity)与数据访问接口(Repository)就能开箱即用,Spring Data JPA 能基于接口中的方法规范命名自动的帮你生成实现(根据方法命名生成实现,是不是很牛逼?)
Spring Boot 入门实用教程
Spring Boot - 整合Jsp/FreeMarker
本文讲述了(json,jsp,freemarker)配置及整合方法,并针对web开发常用的注解的概念及功能进行了介绍,留下了一个疑问:为什么整合jsp后必须通过spring-boot:run方式启动?欢迎大家留言讨论。
Spring Boot - Servlet、过滤器、监听器、拦截器
本文讲解了注册Servlet/Filter/Listener的两种⽅方式(Servlet/Filter/Listener的概念大家自行查阅资料了解),及拦截器基本原理,并通过注解实现http拦截器,另外本文还有一个疑问:为什么Spring中实现的Http拦截器,无法对我们自定义的servlet请求进行拦截?欢迎大家留言讨论。
Spring Boot - 静态资源处理、启动加载、日志处理
静态资源处理
- 默认资源映射(/** - > /resources/static) ,重点是默认目录的优先级
- ⾃定义资源映射 (继承WebMvcConfigurerAdapter 并重写方法addResourceHandlers)
启动加载
- CommandLineRunner (实现接⼝,多个类加载的优先级)
日志处理
- logback(配置,控制台输出,文件输出)
Spring Boot - 整合JdbcTemplate、MyBatis
- 本文讲解Spring Boot整合JdbcTemplate、整合mybatis,介绍并重点讲解了事务处理和配置。
- 本文未提及关于分⻚查询和数据库连接池,我认为分页查询的重点是分页算法如何封装,并不是Spring Boot关注的重点,大家可以自己实现。
- 另外现在常用的数据库连接池有c3p0/dbcp/tomcat-jdbc/HikariCP。
- 顺便提一下,在Spring Boot中更改数据源,只需要在application.properties配置文件中增加spring.datasource.type配置即可。
服务发布Tomcat:
- 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
- 修改pom文件中jar 为 war
- 修改pom,排除tomcat插件
- 打包部署到容器
Spring Boot 属性配置
Spring Boot 进阶
实现的方式非常简单,我们只需要在Spring Boot工程的/src/main/resources目录下创建一个banner.txt文件,然后将ASCII字符画复制进去,就能替换默认的banner了。
spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。
比如,我们判断一个输入参数是否合法,可以用如下方式
Spring Boot充分利用了JavaConfig的配置模式以及“约定优于配置”的理念,能够极大的简化基于Spring MVC的Web应用和REST服务开发。
使用spring boot开发web应用,决定项目是否可以直接启动的是spring-boot-starter-tomcat模块,我们可以直接引入spring-boot-starter-web。
完成了上面的五步,即可使项目根据你的构建参数的不同,打包出不同环境下运行的包。
- 第1步去掉了SpringBoot内嵌的tomcat和tomcat-jdbc。使得我们可以决定在什么情况下使用何种容器运行我们的项目。
- 第2步配置了Maven构建Porfile,使得构建可根据我们的指令分发不同的包。
- 第3步配置了Maven资源过滤,不仅使得不同Profile下的资源文件互不可见,且替换了资源文件中以“@xx@”表示的属性值。
- 第4步使Spring的Profile由Maven决策,这样,我们就不用每次打包都修改Spring的Profile配置了。
- 第5步展示了如何执行不同Profile下的构建命令,并且使用了一个Shell脚本方便我们执行构建和跳过测试(多数时候我们在构建项目时先测试,并不需要在构建时测试,测试和构建的解耦使得我们更专注。但同时,如果你忘记了前置测试,也可能会引发未察觉的测试问题)。
Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
SpringBoot的starter主要用来简化依赖用的。本文主要分两部分,一部分是列出一些starter的依赖,另一部分是教你自己写一个starter。
- @ControllerAdvice 和 @ExceptionHandler 的区别
- 处理 Controller 中的异常
- 处理 404 错误
Spring Boot整合jsp后必须通过spring-boot:run方式启动?
简单总结一下,本文阐述的问题并不是日常开发中的主要问题(可能连主要问题都算不上,谁会用main去调试??),但是遇到了就花时间来研究一下,还是有所收获的。
- 分析问题思路
- Spring Boot 初始化的部分流程
- 请求转发和重定向的区别
另外大家注意如果pom文件中<scope>去掉,再正常部署到tomcat容器中,会有jar冲突,建议大家试验过后,修改回去。
通过springBoot构建一个简单的Restful webService
SpringBoot-vue 基于Java的微服务全栈快速开发实践
Spring Boot 讲堂
Java 微服务实践 - Spring Boot 为系列讲座,二十节专题直播,时长高达50个小时,包括目前最流行技术,深入源码分析,授人以渔的方式,帮助初学者深入浅出地掌握,为高阶从业人员抛砖引玉。
系列讲座列表:
1. Java 微服务实践 - Spring Boot 系列(一)初体验
2. Java 微服务实践 - Spring Boot 系列(二) Web篇(上)
3. Java 微服务实践 - Spring Boot 系列(三)Web篇(中)
4. Java 微服务实践 - Spring Boot 系列(四)Web篇(下)
5. Java 微服务实践 - Spring Boot 系列(五)嵌入式Web容器
6. Java 微服务实践 - Spring Boot 系列(六)数据库 JDBC
7. Java 微服务实践 - Spring Boot 系列(七)MyBatis
8. Java 微服务实践 - Spring Boot 系列(八)JPA
9. Java 微服务实践 - Spring Boot 系列(九)NoSQL
10. Java 微服务实践 - Spring Boot 系列(十)缓存
11. Java 微服务实践 - Spring Boot 系列(十一)消息
12. Java 微服务实践 - Spring Boot 系列(十二)验证
13. Java 微服务实践 - Spring Boot 系列(十三)WebSocket
14. Java 微服务实践- Spring Boot 系列(十四)WebService
15. Java 微服务实践 - Spring Boot 系列(十五)安全
16. Java 微服务实践 - Spring Boot 系列(十六)日志
17. Java 微服务实践 - Spring Boot 系列(十七)监管
18. Java 微服务实践 - Spring Boot 系列(十八)配置
插播一则消息:11.11 - 11.13,SF 讲堂将开启优惠模式,大部分讲座均有不同限量的优惠,等你来抢! >>> 电梯直达活动页
本期完
:)
欢迎关注 SegmentFault 微信服务号,获取最新讲堂及优惠信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。