1、SpringBoot简介
官网介绍:
- Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
- Spring Boot 可以轻松创建可以“直接运行”的独立的、生产级的基于 Spring 的应用程序。
特性:
- 创建独立的 Spring 应用程序
- 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文件)
- 提供“starter”依赖项以简化您的构建配置
- 尽可能自动配置 Spring 和 第三方调用库
- 提供生产就绪功能,例如指标、健康检查和外部化配置
- 完全无需代码生成,无需 XML 配置
最关键的一点:约定优于配置
2、创建自己的SpringBoot
- 新建 -> 选择 Spring Initializr
- 填写如下配置
- 目录结构
- 测试一下
- 是web测试,所以需要引入spring-boot-starter-web,然后在配置文件中配置相关的web访问信息。
- 配置文件支持.properties、.yml、.yaml格式。本质上是差不多的,不过properties格式是kv格式,yml是树状结构的,这种格式的选择看个人喜好了。
3、手写一个starter
面试中经常听到面试官说:如果让你手写个starter,你会怎么做。听到这个问题,第一反应,写个starter?我也配?
其实starter并没有想象中的那么复杂和困难。俗话说:没出过猪肉,还没见过猪跑吗?我们虽然没写过starter,但是借助官方文档说明和各种成熟的starter,想写出来一个自己的starter还是很简单的。
下面开始手写一个starter
前面提到过SpringBoot的特性提供“starter”依赖项以简化您的构建配置,starter会把所有用到的依赖都给包含进来,避免了开发者自己去引入依赖所带来的麻烦。
一个完整的Spring Boot starter可能包含以下组件
- autoconfigure模块,包含自动配置类的代码。
- starter模块,提供自动配置模块及其他有用的依赖,简而言之,添加本starter就能开始使用该library。
由于官方提供了许多“starter”,为了区分官方的“stater”和第三方的“stater”,官方建议第三方提供的Stater使用xxx-spring-boot-starter的命名规则(如:mybatis-spring-boot-starter),官方提供的Stater使用spring-boot-starter-xxx的规则(如:spring-boot-starter-web、spring-boot-starter-jdbc)。
- 创建一个starter,命名myself-spring-boot-starter,spring项目
- starter的处理
- 业务需要用到的一些属性值
- 将自己的业务类交给spring管理
- 小小的配置
在resource/META-INF下新建spring.factories文件,
配置starter中的配置类的位置
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.myselfstarter.autoconfigure.StarterAutoConfiguration
- mvn install 将包打包至自己仓库中,在另外的项目中直接引用即可
- 测试
可以看到 我们自定义的starter是可以使用的。
我们看看mybatis-plus-spring-boot-starter是怎么写的
PS:我们观察其他第三方很成熟的starter,他们的基本套路也是这样,所以说手写一个starter根本没有什么怕的!!!
这个文章就到这了,下次介绍springboot的自动装配和常用注解。