Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
特点:
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JAR和WAR;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自化配置;自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部
(6)绝对没有代码生成,不需要XML配置。
SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。
开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。
约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。
从根本上来讲就是:
SpringBoot包含了很多框架,然后你自己选择哪些框架,springboot就会帮你整合好,不能满足你的业务的地方,你可以自己修改。
SpringBoot:就是以前要使用什么的就要去导什么包,然后去写相关的配置文件,现在使用了springboot,只需要导指定的包,就可以直接使用,为啥呢?因为springboot已经帮你写好了一套默认配置在里面,如果不能达到你想要效果:,可以修改springboot定义的配置。
舍弃了传统的XML方式
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- /springmvc5/WEB-INF/index.jsp -->
<property name="prefix" value="/jsp/"></property><!-- 前缀 -->
<property name="suffix" value=".jsp"></property><!-- 加后缀 -->
</bean>
使用java类的方式来操作
Public class InternalResourceViewResolver{
Private String prefix;
Private String suffix;
.......
}
Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。
虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。
第一阶段:xml配置
在Spring 1.0 时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换
第二阶段:注解配置
在Spring 2.0 时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component、@Service),大大减少了配置量。主要使用的方式是应用的基本配置(如数据库配置)用xml,业务配置用注解
第三阶段:java配置
Spring 3.0 引入了基于 Java 的配置能力,这是一种类型安全的可重构配置方式,可以代替 XML。我们目前刚好处于这个时代,Spring4.0和Spring Boot都推荐使用Java配置。
Spring Boot 主要目标是:
A 为所有 Spring 的开发提供一个从根本上更快的入门体验
B 开箱即用,但通过自己设置参数,即可快速摆脱这种方式。
C 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
D 绝对没有代码生成,也无需 XML 配置
spring boot 启动过程图