1.简介
SpringBoot是一个简化Spring开发的框架。采用约定大于配置的开发原则,去繁就简,能够快速的开发一个应用。在使用SpringBoot进行开发时只需要载入相应startert就可以用所有的Spring组件,其实springboot就是整合了很多优秀的框架,把原先框架所需的jar包依赖在springboot中换成了相应的启动器starter,此外不用我们自己手动的去写一堆xml配置,大多采用springboot的默认配置,当然可以修改默认配置。springboot就是集成了很多框架,然后帮我们默认配置了一些东西,我们可以拿来就用。极大的简化了配置。
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
2.优点
3.单体应用与微服务
单体应用是把所有的应用模块都写在一个应用中,导致项目越写越大,模块之间的耦合度也会越来越高,项目自然就变得越来越臃肿。微服务是一种架构风格,用微服务可以将应用的模块单独部署,对不同的模块进行不同的管理操作,不同的模块生成小型服务,每个功能元素最后都可以成为一个可以独立替换、独立升级的功能单元,各个小型服务之间通过http协议进行通信。
4.springboot的核心特点
1.微服务
使用SpringBoot可以生成独立的微服务功能单元。
2.自动配置
针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置,即约定优于配置。
3.起步依赖
告诉Spring Boot需要什么功能,它就能引入需要的依赖库,即starter启动器。
4.Actuator
可以在生产环境中监控当前应用程序状态,例如程序的健康,虚拟机等信息,并且可以将这些监控信息通过前端以可视化的界面展示出来,以便实时掌握程序的运行情况。
helloworld案例
运行结果截图:
解析:
每一个springboot的运行都是从springboot的入口类开始执行的。
@SpringBootApplication //启动注解 用来标注主程序类 说明这是是一个springboot应用
@ComponentScan(basePackages = {"com.test.demo.controller"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
//注意:java代码必须和启动类在同一目录下
启动类注解解析:
1.程序从main方法开始运行
2.使用SpringApplication.run()加载主程序类
3.主程序需要标注@SpringBootApplication,表示这是一个springboot应用
4.@EnableAutoConfiguration是springboot的核心注解,即自动配置,相关的自动配置都是由这个注解完成
5.@Import({AutoConfigurationImportSelector.class}) 导入所有的自动配置场景
6.@AutoConfigurationPackage定义默认的包扫描规则
7.程序启动扫描加载主程序类所在的包以及下面所有子包的组件
AutoConfigurationPackage:
自动扫描@SpringBootApplication标记的主类,在主类所在包或者所在的子包下面找相应的控制类,然后根据相应的注解自动配置相应的项目所需的bean。
其实springboot就是帮我们整合集成了很多框架,让我们的开发变得更加简单快速,其实核心还是ssm框架基础。
参考博文:
(1) https://baijiahao.baidu.com/s?id=1623648034778672046&wfr=spider&for=pc
(2) https://www.cnblogs.com/nevermorewang/p/9053504.html (对springboot的理解)
(3) https://www.zhihu.com/question/39483566 (知乎上对springboot的理解的讨论)