学习 SpringBoot 需要做哪些准备?
什么是 SpringBoot? Spring Boot是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置.
Spring Boot提供了各种组件的启动器(starter),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目.
Spring Boot不但能创建传统的 war 包应用,还能创建独立的不依赖于任何外部容器(如:tomcat)的独立应用,使用java -jar 命令就能启动.
首先,需要知道,SpringBoot 工程(应用)与普通的 Java/Spring 应用没有任何区别,或不一样的实现形式。简单的说,你只要在 pom 文件中加上了 SpringBoot 所必须的 parent 和相关依赖,这就是一个 SpringBoot 应用。
当你理解了 Spring,学习 SpringBoot,是一件很简单的事,因为它只是简化了对 Spring 的使用与配置。除此之外,它也提供了一些功能强大且方便的特性。这里,我介绍一些最为常用的特性。
注解 @SpringBootApplication
三种启动方式
简单的说,自动配置就是会根据在类路径中的jar、类自动配置Bean。Spring Boot将所有的功能场景都抽取出来,做成一个个的starter(启动器),只需要在项目里面引入这些starter,相关场景的所有依赖都会导入进来。
自动配置的实现是基于三个重要的注解实现的(实际就是 @SpringBootApplication 注解):
同一个目录下的 application 和 bootstrap
file:./config/ - 优先级最高(项目根路径下的 config) file:./- 优先级第二(项目根路径下) classpath:/config/ - 优先级第三(项目 resources/config 下) classpath:/ - 优先级第四(项目 resources 目录下) 高优先级覆盖低优先级相同配置、多个配置文件互补
通常在项目中处理JSON一般用的都是阿里巴巴的fastjson, 后来发现使用Spring Boot内置的Jackson来完成JSON的序列化和反序列化操作也是非常方便的。
Jackson通过使用ObjectMapper的writeValueAsString方法将Java对象序列化为JSON格式字符串 反序列化使用 ObjectMapper 的 readValue
在 SpringBoot 中开启定时任务需要做两件事:
通常代码都是顺序执行(一行一行的执行),这也就是同步调用。但是异步编程却没有这样的限制,代码执行并不是阻塞的。可以直接调用不用等待返回,而是在某一个想要获取结果的时间点再去获取结果。在 SpringBoot 应用中编写异步代码:
编写单元测试可以帮助开发人员编写高质量的代码,提升代码质量,减少Bug,便于重构。SpringBoot提供了一些实用程序和注解,用来帮助我们测试应用程序,在SpringBoot中开启单元测试只需引入spring-boot-starter-test即可,其包含了一些主流的测试库。