SpringBoot 是什么
SpringBoot是Spring的子项目,看名字就知道是提供Spring的引导功能(Boot); 提供了各种Starter 启动器,可以进行标准化配置: 比如 spring-boot-starter-web 启动器,可以快速配springmvc mybatis-spring-boot-starter 启动器,可以快速配置Mybatis
SpringBoot 提供了哪些核心功能?
- 独立运行Spring 项目
Spring Boot 可以以jar包的形式独立运行,运行一个Spring Boot 项目只需要通过 java -jar xx.jar来运行 - 内嵌Servlet容器
Spring Boot 可以选择内嵌Tomcat jetty netty 或者undertow ,这样我们就可以无需以 war包的形式部署项目 - 提供 starter启动器简化 maven配置
- 自动配置Spring Bean
- springBoot 监测特定类的存在,就会针对这个应用做一定的配置,进行自动配置bean。从这里可以看出来,SpringBoot只考虑到了大多数的开发场景,在实际开发中如果我们需要的bean springBoot没有提供支持,那么我们就可以通过自定义配置实现
- 在具体的bean装配中 ,有一类注解至关重要 ,@Conditional 这个注解指定了在什么条件下创建bean进行配置 ,比如 @ConditionalOnClass @ConditionOnMissingClass
- 丰富的应用监控
- 采用了 spring-boot-start-actuator之后,直接以REST的方式,获取进程的运行期性能参数,一般可以通过http JMX SSH协议来进行操作
- actuator -所有EndPoint的列表
- autoconfig 当前应用的所有自动配置
- beans 所有beans信息
- configgroup 所有配置信息
- dump 显示当前应用线程状态信息
- env 环境信息
- health 当前应用的健康状况
- info 当前应用信息
- metrics 当前应用的各项指标信息
- mappings 显示所有@RequestMapping 映射的地址
- shtudown 关闭当前应用
- trace 显示追踪信息(默认最新的http请求)
SpringBoot 缺点
- 没有提供相应的服务发现和注册的配套功能
- 因为自动配置spring bean的功能,我们可以无法知道,哪些bean被创建了。这个时候如果我们想要自定义一些bean ,可能存在冲突,或者不清楚实际注入的情况
SprigBoot 优点
SpringBoot 常用的 starter有哪些?
- spring-boot-starter-web : 提供 springmvc + 内嵌Tomcat
- spring-boot-starter-data-jpa 提供jpa + hibernate
- spring-boot-starter-redis 提供redis
- mybatis-spring-boot-starter 提供 mybatis
如何统一引入SpringBoot 版本
- 继承 spring-boot-starter-parent 项目
- 导入 spring-boot-dependencies 项目依赖 ,一般用第二种
如何重新加载 Spring Boot上的更改,而无需重启服务器?
- 使用 spring-boot-devtools 插件
SpringBoot 默认配置文件
application.properties / yaml
|