Spring Cloud核心之Spring Boot

导读:本篇文章讲解 Spring Cloud核心之Spring Boot,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

Spring Boot是Spring Cloud生态的基石。
Spring Boot是帮助开发者快速构建一个基于Spring Framework及Spring生态体系的应用解决方案,也是Spring Framework对应“约定优于配置(Convention over Configuration)”理念的最佳实践。

重新认识Spring Boot

Spring的诞生

Spring 是一个轻量级框架,它的主要目的是简化JavaEE的企业级应用开发,而达到这个目的的两个关键手段是IoC/DI和AOP。除此之外Spring就像一个万能胶,对Java开发的常用技术进行合理的封装和设计,使之能够快速方便的集成和开发比如Spring集成Mybatis等。Spring的出现给Java EE规范下的黑暗时代带来了春天,很快人们就抛弃了繁重的EJB标准,Spring逐步成了现实中Java EE开发的标准。

Spring IoC/DI

  • IOC
    IOC(inversion of controller):控制权反转,实际上就是把对象的生命周期托管给Spring容器中,而反转是指对象的获取方式被反转了。
  • DI
    DI(Dependency Inject),也就是依赖注入,简单理解就是IoC容器在运行期间,动态的把某种依赖关系注入组件中(属性填充过程中的自动装配);白话就是组件中需要依赖其他组件,ioc容器就把需要依赖的组件赋值给该组件。
    实现依赖注入的方法主要是构造方法注入和属性注入。不过现在基本上都是注解的方式来描述Bean之间的关系,比如@Autowired、@Inject和@Resource,只是形式不一样,本质都是根据组件间的依赖关系,从容器中获取相应的bean,这些都是由IOC容器来完成。

Spring Boot的价值

Spring Boot并不是一个新的技术框架,其主要作用就是简化Spring应用的开发,开发者只需要通过少量的代码就可以创建一个产品级的Spring应用,而达到这一目的的最核心的思想就是约定优于配置(Convention over Configuration)

如何理解约定优于配置

约定优于配置是一种软件设计范式,目的在于减少配置的数量或者降低理解难度,从而提升开发效率。它并不是一种新的思想,实际许多场景都有用到这种思想。比如,数据库中表名的设计对应java中实体类的名字,就是一种约定,我们可以通过这个实体类名字知道它对应的数据库中的表。再比如,每个公司都有自己的开发规范,开发者按照开发规范可以在一定程度上减少Bug的数量,增加可读性和可维护性。
在Spring Boot中,约定优于配置的思想主要体现在以下几个方法(包括但不限于):

  • Maven目录结构的约定。
  • Spring Boot默认的配置文件及配置文件中配置属性的约定。
  • 对应SpringMVC的依赖,自动依赖内置的Tomcat容器。
  • 对应Starter组件自动完成装配。

Spring Boot的核心

Spring Boot是基于Spring Framework体现来构建的,所以它并没有什么新的东西,但是要想学好Spring Boot,必须知道它核心。

  • Starter组件,提供开箱即用的组件。
  • 自动装配,自动根据上下文完成Bean的装配。
  • Actuator,Spring Boot应的监控。
  • Spring Boot CLI,基于命令行工具快速构建Spring Boot应用。
    其中最核心的是自动装配(自动配置),Starter也是根据自动装配来实现的。

spring boot自动装配的流程

  1. @SpringBootApplication注解找到@EnableAutoconfiguration注解。
  2. @EnableAutoConfiguration注解中的@Import(AutoconfigurationImportSelector.class)。
  3. AutoconfigurationImportSelector会去解析类路径下的MATA-INF/spring.factories文件中的EnableAutoconfiguration对应的自动配置类。
  4. 具体的自动配置类根据@Conditionalxxx条件自动装配相应的Bean到IoC容器中。

@Conditional条件装配

@Conditional是Spring Framework提供的一个核心注解,这个注解的作用是提供自动装配的条件约束,一般与@Configuration和@Bean一起使用。
简单来说,Spring在解析@Conditional配置类时,如果该配置类增加了@Conditional注解,那么会根据该注解配置的条件来判断是否需要实现Bean的装配。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100363.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!