0. 一个链接学习足够
1.背景介绍
Spring Boot是由Pivotal团队提供的基于Spring4 的条件注册的一套快速开发整合包,其设计目的是用来简化新Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。 spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,spring大家都知道,boot是启动的意思。所以,spring boot其实就是一个启动spring项目的一个工具而已。从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用,就像maven整合了所有的jar包,Spring Boot 提供了基于spring 的各种starter(传感器)的快速启动。
2. 为什么会出现
以前在写spring项目的时候,要配置各种xml文件,还记得曾经被ssh框架支配的恐惧。随着spring3,spring4的相继推出,约定大于配置逐渐成为了开发者的共识,大家也渐渐的从写xml转为写各种注解,在spring4的项目里,你甚至可以一行xml都不写。
虽然spring4已经可以做到无xml,但写一个大项目需要茫茫多的包,maven配置要写几百行,也是一件很可怕的事。
现在,快速开发一个网站的平台层出不穷,nodejs,php等虎视眈眈,并且脚本语言渐渐流行了起来(Node JS,Ruby,Groovy,Scala等),spring的开发模式越来越显得笨重。
在这种环境下,spring boot伴随着spring4一起出现了。
3. spring boot 可以做什么
spring boot并不是一个全新的框架,它不是spring解决方案的一个替代品,而是spring的一个封装。所以,你以前可以用spring做的事情,现在用spring boot都可以做。
现在流行微服务与分布式系统,springboot就是一个非常好的微服务开发框架,你可以使用它快速的搭建起一个系统。同时,你也可以使用spring cloud(Spring Cloud是一个基于Spring Boot实现的云应用开发工具)来搭建一个分布式的网站。
4. 优点
- 使编码变得简单
spring boot采用java config的方式,对spring进行配置,并且提供了大量的注解,极大地提高了工作效率。
- 使配置变得简单
spring boot提供许多默认配置,当然也提供自定义配置。但是所有spring boot的项目都只有一个配置文件:application.properties/application.yml。用了spring boot,再也不用担心配置出错找不到问题所在了。
- 使部署变得简单
spring boot内置了三种servlet容器:tomcat,jetty,undertow。
所以,你只需要一个java的运行环境就可以跑spring boot的项目了。spring boot的项目可以打成一个jar包,然后通过java -jar xxx.jar来运行。(spring boot项目的入口是一个main方法,运行该方法即可。 )
- 使监控变得简单
spring boot提供了actuator包,可以使用它来对你的应用进行监控。
4.知识剖析
Springboot将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。
自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。
5.经常性的疑问
- SPRINGBOOT和SPRING的关系?
spring就好比一个大型的电子元件生产公司,它生产的元件性能都很优秀,但是坊间使用它的元件的作坊,拿到手之后 还得搞一些电焊,衔接,可能要花个10天半个月最后做成一个家电或者机器人。有一天这个公司就宣布,我们现在提供 了一些功能模块,比如摄像头传感器,扩音器传感器,压力传感器,它们都是统一的usb接口的,只需要插线连接就能使用了。
Spring Boot没有引入任何形式的代码生成,而是利用了Spring 4的条件化配置特性, 以及Maven和Gradle提供的传递依赖解析,以此实现Spring应用程序上下文里的自动配置。 简而言之,从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。有了Spring Boot,你不用再写这些样板配置了,可以专注于应用程序的逻辑, 这些才是应用程序独一无二的东西。
- Spring-boot-starter是什么?
Spring-boot-starter是spring提供的针对日常企业应用开发各种场景的自动依赖模块,就像是一个工具箱,装好了你需要的各种工具(依赖),“开箱即用”使得开发各种场景的spring应用更加迅捷
- Spring Boot 中如何配置属性?
实际上,Spring Boot应用程序有多种设置途径。Spring Boot能从多种属性源获得属性,包括 如下几处。
工具
懒得写,工具而已 根据搜集到的教程学习下即可。
SpringBoot精髓
精髓:
- SpringBoot启动会加载大量的自动配置类
- 我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
- 我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
- 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可以在配置文件中指定这 些属性的值;
- 上一个的细节 xxxxAutoConfigurartion:自动配置类; 给容器中添加组件 会有对应的
xxxxProperties:封装配置文件中相关属性;
参考
程序员DDSpringBoot教程
方志朋SpringBoot博客
@RequestParam和@PathVariable的用法与区别
关与@EnableConfigurationProperties 注解
SpringBoot配置文件
Spring @Import讲解
SpringBoot的幕后推手
spring-boot-starter讲解
SpringBoot learning
springboot第一个bug
springboot资料整合
springboot git
Spring AOP中JoinPoint的用法
JPA十分钟