Springboot
- Springboot 核心功能
- SpringBoot的相关好处
Springboot 核心功能
1、 可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。
2、 内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。
3、 简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。
4、 自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。
5、 提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
6、 无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。
我们的主要目标是:
为所有Spring开发提供一个更快,更广泛的入门体验。
立即开始斟酌,但随着需求开始偏离默认值,快速避开
提供大型项目(如嵌入式服务器,安全性,指标,运行状况检查和外部配置)通用的一系列非功能性功能。
绝对不会生成代码,并且不需要XML配置。
SpringBoot的相关好处
A.为什么要用SpringBoot?
B.什么是SpringBoot?
C.SpringBoot与SpringCloud 的区别?
D.SpringBoot与SpringMVC 的区别?
(一)为什么要用SpringBoot?
以往的项目整合起来是比较繁琐复杂的,而且存在架包冲突的问题,这时候SpringBoot应运而生了,SpringBoot也就是用来做这个的。
(二)什么是SpringBoot?
SpringBoot是一个快速开发的框架,能过快速整合第三方框架,他是如何快速整合的呢?其实他是的基本原来是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,jetty),默认嵌入Tomcate,最终以Java应用程序进行执行。
总结一下:
1.SpringBoot是微服务框架(并不合理,后面我们总结也SpringCloud的时候在细说)
2.SpringBoot核心:快速整合第三方框架
3.SpringBoot原理:Maven依赖关系,Maven的继承,完全采用注解化,Spring3.0以后采用注解方式启动SpringMVC
(三)SpringBoot与SpringCloud 的区别?
1.SpringBoot快速开发框架,快速整合第三方框架(Maven依赖关系###Maven继承),完全采用注解化,简化XML配置,最终以java应用程序进行执行。
2.SpringCloud一套目前完整的微服务解决框架,功能非常强大,注册中心,客户端调用工具,服务治理(负载均衡,断路器,分布式配置中心,网管,消息总线等)。
3.关系:微服务通讯技术Http+json(restfull)轻量级,SpringBoot Web组件默认集成SpringMVC,SpringCloud依赖于SpringBoot实现微服务,使用SpringMVC编写微服务接口。
SpringCloud 微服务开发——RPC远程通讯技术,服务治理,单纯的只是集成SpringBoot实现快速开发。
(四)SpringBoot与SpringMVC 的区别?
说白了就是SpringBoot Web组件默认集成SpringMVC框架,SpringMVC3.0以后支持注解方式使用java代码启动SpringMVC。
1.启动流程
主要步骤首先要配置environment,然后准备context上下文,包括执行applicationContext的后置处理、初始化initializer、通知listener处理contextPrepared和contextLoaded事件。最后执行refreshContext,也就是前面介绍过的AbstractApplicationContext类的refresh方法。
2.配置文件
然后要知道在Spring Boot中有两种上下文,一种是bootstrap, 另外一种是application。
bootstrap是应用程序的父上下文,也就是说bootstrap会先于applicaton加载。bootstrap主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。bootstrap里面的属性会优先加载,默认也不能被本地相同配置覆盖。
3.注解
@SpringBootApplication包含了@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration三个注解
而@SpringBootConfiguration注解包含了@Configuration注解。也就是springboot的自动配置功能。
@Conditional注解就是控制自动配置的生效条件的注解,例如bean或class存在、不存在时进行配置,当满足条件时进行配置等等。
4.特色模块
starter是springboot提供的无缝集成功能的一种方式,使用某个功能时开发者不需要关注各种依赖库的处理,不需要具体的配置信息,由Spring Boot自动配置进行bean的创建。例如需要使用web功能时,只需要在依赖中引入spring-boot-starter-web即可。
actuator是用来对应用程序进行监视和管理,通过restful api请求来监管、审计、收集应用的运行情况。
devtools提供了一系列开发工具的支持,来提高开发效率。例如热部署能力等。
CLI就是命令行接口,是一个命令行工具,支持使用Groovy脚本,可以快速搭建spring原型项目。