1. 使用步骤

  ① 在pom.xml 增加父级依赖(spring-boot-starter-parent)

  ② 增加项目起步依赖,如spring-boot-starter-web

  ③ 配置JDK版本插件

  ④ 增加入口类

public static void main(String[] args){
SpringApplication.run(当前类.class,args)
}

  ⑤ 给main所在类增加注解@EnableAutoConfiguration声明启用自动配置

2. @EnableAutoConfiguration

  • 该注解声明启用自动配置
  • 自动配置的类位于org.springframework.boot.autoconfigure包下
  • 相对应的功能自动配置位于对应的子包下
  • 使用属性exclude={XXXAutoConfiguration.class}关闭对应的自动配置

3. 改变banner(启动时的字符图)
  ① 借助工具生成自己的文本图案http://www.patorjk.com/software/taag/#p=display&f=Graffiti&t=
  ② 放入banner.txt
  ③ 把文件放入resource路径下

4. 全局配置文件

  • 名字必须是 application 如application.properties或application.yml
  • 一般放入类路径下或resource路径下
  • server.port 修改服务器容器端口
  • server.context-path 修改服务根路径
  • 自定义属性值(如 book.name=SpringBoot),可以通过@Value("${book.name}")注入到属性中;或采用类型安全的配置,先在类增加注释@ConfigurationProperties(prefix="book"),再通过同名属性(需要有setter、getter)来得到值
  • Profile配置:使用application-*.properties作为各个环境下的配置,通过application.properties中设置
    spring.profile.active=后缀名来指定活动的Profile
  • logging.config 指定日志文件 spring.mvc.view.prefix 配置Web前缀spring.mvc.view.suffix 配置Web后缀spring.resources.static-locations=classpath:XXX 配置静态资源的路径spring.http.encoding.force=true 开启response编码设置为utf-8

5. 自动配置的原理

  • 通过查找是否包含某个类来启用对应的配置类

6. 创建父级工程
  ① 父工程的packaging必须是POM
  ② 通过Ctrl点击parent查看原来jar包的管理,把它放入到当前pom中

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

  如果出现版本丢失,需要加上type和scope标签

  ③ 把相关的插件都放入到父pom中
  ④ 子工程的parent改为自己的父级工程

7. Spring Boot整合测试
  ① pom引入 junit和spring-boot-starter-test
  ② 测试类指定要测试的类 @SpringBootTest(classes=XxxController.class)
  ③ 测试类指定执行测试的类 @RunWith(SpringJUnit4ClaaRunner.class)
  ④ 测试类跟web整合 @WebAppConfiguration
  ⑤ 注入测试对象

@Autowired
private XxxController xxxController;

  ⑥ 编写测试方法,使用TestCase进行断言

8. 注解

  • @EnableAutoConfiguration 启动自动配置
  • @ComponentScan("包名") 自动扫描的包(默认扫描当前包和当前包的子包,当启动自动配置的类与要使用Spring组件注解的类不在同一包下,则需要增加该注解)
  • @SpringBootApplication 代替上面两个注解的组合注解(默认扫描当前包和当前包的子包)@ResponseBody 表示返回的是Restful内容,不使用该注解会进行跳转
  • @Controller 声明该类是一个Controller类
  • @RestController 声明该类是一个每个返回结果都是Restful内容的Controller类,方法里可以省略@ResponseBody注解
  • @PathVariable 把mapping中{}的值赋值给变量

9. 日志使用

private Logger logger = LoggerFactory.getLogger(this.getClass());

10. 配置为开发模式

  • 可以不需要每次重启
  • 加入两个依赖(springloaded、spring-boot-devtools)即可

11. WEB项目访问静态资源

  • 默认情况下,Spring Boot从classpath的/static,/public或/META-INF/resources文件夹或从ServletContext根目录提供静态内容
  • 也可以通过全局配置设置静态目录

12. 自定义消息转换器

  • 只需要在类中添加消息转换器的@Bean,就会被SpringBoot自动加入到容器中
  • SpringBoot自动配置了消息转换器

13. 使用FastJson解析Json数据
  ① 引入FastJson的依赖包
  ② 配置FastJson

  •   让启动类继承WebMvcConfigurerAdapter,重写消息转换器配置方法,方法中把FastJson消息转换器放入集合中
  •   使用@Bean注入HttpMessageConverters

14. 自定义拦截器
  ① 继承WebMvcConfigurerAdapter,并增加@Configuration声明这是一个配置
  ② 重写addInterceptors方法
  ③ 写自己的拦截器 new HandlerInterceptor()
  ④ 把自己的拦截器加入到集合中,并增加拦截路径
  ⑥ 在入口类中增加扫描

15. 全局异常处理器(使用aop)
  ① 定义一个处理类,使用@ControllerAdvice声明通知
  ② 增加方法,使用@ExceptionHandler声明处理哪些异常
  ③ 增加@ResponseBody声明返回值

16. 异步调用
  ① 增加服务实现类增加注解@Service
  ② 方法中增加注解@Async声明启动线程执行
  ③ 启动类中增加扫描注解
  ④ 启动类增加@EnableAsync开启异步调用

17. Spring Boot整合JSP
  ① 需要创建web工程
  ② 增加依赖spring-boot-starter-tomcat、tomcat-embed-jasper
  ③ 增加插件来省略web.xml

<build>
<plugins>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugins>
</build>

  ④ 全局配置文件配置前缀后缀

18. Spring Boot整合Freemarker
  ① 引入依赖spring-boot-starter-freemarker
  ② 在resource的templates放置模板文件或者通过全局配置进行设置

19. Spring Boot整合Thymeleaf
  ① 引入依赖spring-boot-starter-thymeleaf
  ② 在resource的templates放置模板文件或者通过全局配置进行设置

20. Spring Boot整合QuartZ

21. Spring Boot整合JdbcTemplate

22. Spring Boot整合Mybatis(xml方式)

  ① 引入mybatis-spring-boot-starter依赖、数据库jar依赖、阿里的连接池(druid-spring-boot-starter、druid)、
分页插件依赖(pagehelper-spring-boot-starter)
  ② 在全局配置文件中增加数据源配置、Mybatis的核心配置和Mapper配置的路径等、分页插件的配置
  ③ 增加Mybatis配置:在resource下放置Mybatis配置文件、Mapper配置文件
  ④ 启动类需要使用@MapperScan单独扫描Mapper接口类

23. Spring Boot整合Mybatis(注解方式,在Mapper接口中使用注解而不是xml文件)
  ① 引入mybatis-spring-boot-starter依赖、数据库jar依赖、阿里的连接池(druid-spring-boot-starter、druid)、
分页插件依赖(pagehelper-spring-boot-starter)
  ② 启动类使用@MapperScan单独扫描Mapper接口类

24. Spring Boot区分多数据源

  • 方式:

    • 通过包来区分(推荐)
    • 使用注解来区分
  • 过程:
    • 1.在配置文件中增加自定义属性来存放数据库连接信息
    • 2.增加不同数据源的数据源配置类(@Configuration),使用@MapperScan配置扫描的Mapper包和使用的session工厂;配置类中增数据库相关的注入bean
    • 3.在Mapper接口类中使用@Qualifier("数据源")选择数据源

25. Spring Boot事务管理

  • 使用@Transactional注解

26. Spring Boot整合JPA(Hibernate实现)

27. Spring Boot整合Mail

28. Spring Boot打包发布
  ① POM需要时war类型
  ② 需要把spring-boot-starter-tomcat的scope设置为provided
  ③ 让启动类继承SpringBootServletInitializer
  ④ 重写Cconfigure,通过参数指定启动类 builder.source(XXX.class)
  ⑤ run as Maven
  ⑥ 把war包放入tomcat

 

2019-04-05 Spring Boot学习记录的更多相关文章

  1. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  2. 我的Spring Boot学习记录(二):Tomcat Server以及Spring MVC的上下文问题

    Spring Boot版本: 2.0.0.RELEASE 这里需要引入依赖 spring-boot-starter-web 这里有可能有个人的误解,请抱着怀疑态度看. 建议: 感觉自己也会被绕晕,所以 ...

  3. 【转载】Spring boot学习记录(二)-配置文件解析

    前言:本系列文章非本人原创,转自:http://tengj.top/2017/04/24/springboot0/ 正文 Spring Boot使用了一个全局的配置文件application.prop ...

  4. 【转载】Spring boot学习记录(一)-入门篇

    前言:本系列文章非本人原创,转自:http://tengj.top/2017/04/24/springboot0/ 正文 首先声明,Spring Boot不是一门新技术.从本质上来说,Spring B ...

  5. 我的Spring Boot学习记录(一):自动配置的大致调用过程

    1. 背景 Spring Boot通过包管理工具引入starter包就可以轻松使用,省去了配置的繁琐工作,这里简要的通过个人的理解说下Spring Boot启动过程中如何去自动加载配置. 本文中使用的 ...

  6. 【转载】Spring boot学习记录(三)-启动原理解析

    前言:本系列文章非本人原创,转自:http://tengj.top/2017/04/24/springboot0/ 正文 我们开发任何一个Spring Boot项目,都会用到如下的启动类 @Sprin ...

  7. Spring boot 学习记录

    java的三种配置方式 基于xml的配置 基于注解的配置 基于java的配置 Spring boot推荐的配置方式:java配置+注解配置 一.注解 SpringBootApplication :等价 ...

  8. Spring Boot学习记录03_一些属性配置文件

    转自:http://blog.didispace.com/springbootproperties/ 多环境配置(这个地方跟maven的profile配置有点类似) 我们在开发Spring Boot应 ...

  9. Spring Boot学习记录(二)–thymeleaf模板

    自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好 ...

随机推荐

  1. Redis~Linux环境下的部署

    回到目录 Redis的生产环境建议部署到linux上,而在开发时可以连接windows版本,下面介绍如何在linux上部署redis. $ wget http://download.redis.io/ ...

  2. Asp.Net Core 轻松学-从安装环境开始

    Asp.Net Core 介绍     Asp.Net Core是微软新一代的跨平台开发框架,基于 C# 语言进行开发,该框架的推出,意味着微软从系统层面正式进击 Linux 服务器平台:从更新速度开 ...

  3. 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架

    使用 WebApi 交互打造原生的微信小程序 - 图灵小书架 目录 介绍 源码地址 扫一扫体验 代码分析 其它相关信息(互联网搜集) 介绍 定时抓取图灵社区官网的首页.最热.推荐和最新等栏目的相关图书 ...

  4. Linux系统上安装MySQL(rpm)

    1.准备工作 从MySQL官网上分别下载mysql服务器端于客户端包. 如: MySQL-server-5.5.15-1.linux2.6.x86_64.rpm和MySQL-client-5.5.15 ...

  5. 观察者模式 Observer 发布订阅模式 源 监听 行为型 设计模式(二十三)

    观察者模式 Observer 意图 定义对象一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都得到通知并自动更新. 别名:依赖(Dependents),发布订阅(Publish-Su ...

  6. nodejs异步转同步

    项目在微信环境开发,需要获取access_token进行授权登录和获取用户信息. 特意把这块功能拿出来封装一个自定义module module.exports = new Wechat(con.app ...

  7. Javascript之高级数组API的使用实例

    JS代码中我们可以根据需求新建新的对象解决问题的同时,也有一些常用的内置对象供我们使用,我们称之为API,本篇文章只是对数组部分进行了练习. 例一:伪数组,不能修改长短的数组(所以没办法清零),可以修 ...

  8. Easyui 关闭jquery-easui tab标签页前触发事件

    关闭jquery-easui tab标签页前触发事件 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求场景 点击父页面tab 页关闭按钮时,需要做判断,判 ...

  9. 理清PHP在Linxu下执行时的文件权限

    首先推荐一个linux权限的视频:Linux权限管理之基本权限,讲的非常好,看完后就基本明白了. 一.文件权限及所属 1.文件有三种类型的权限,为了方便期间,可以用数字来代替,这样可以通过数字的加减, ...

  10. 测者的测试技术手册:Junit单元测试遇见的一个枚举类型的坑(枚举类型详解)

    Enum的简介 枚举类型很早就在计算机语言中存在了,主要被用来将一组相似的值包含进一种类型中,这种类型的名称被定义成独一无二的类型描述符,这就是枚举类型. 在java语言中,枚举类型是一个完整功能的类 ...