Spring boot篇与lombok

三、Spring boot篇与lombok

简介:

springboot

  • 设计目的:用来简化新Spring应用的初始搭建以及开发过程,该框架使用了特定的方式进行配置,从而使开发人员不需要定义样板化配置。
  • 三大特性:

    • 组件自动装配:web mvc 、jdbc、MongoDB
    • 嵌入式web容器:tomcat、jetty
    • 生产准备特性:指标、健康检查、外部化配置

boot与mvc、cloud

  • Spring是一个引擎
  • Spring mvc是框架,web项目中实际运行时的代码
  • spring boot是一个配置工具,整合工具,辅助工具。是一套快速开发整合包。
  • Spring boot:J2EE一站式解决方案
  • Spring Cloud:分布式整体解决方案

Demo

手动与自动装配Bean:

  • 手动装配:

    • 模式注解装配

      • @Controller、@Service、@Repository
      • @Component注解的扩展
      • Configuration
    • @Enable模式装配

      • 例子

        • EnableWebMvc WebMVC模块
        • @EnableTransaction Management 事务管理模块
        • @EnableCaching Caching 模块
        • @EnableAutoConfiguration 自动装配模块
        • @EnableManagementContext Actuator 管理模块
        • @EnableEurekaServer Eureka服务器模块
        • @EnableConfigServer 配置服务器模块
      • 自定义@Enable模块

        • @Import的派生注解
        • 基于注解驱动实现---可参考@EnableWebMvc注解
        • 基于接口驱动实现

          • ImportSelector接口 条件判断注入
          • 参考@EnableCaching注解
    • 条件装配

      • 说明

        • 定义:Bean装配的前置条件
        • 举例:@Profile、@Conditional
      • 注解方式

        • @Profile 底层实际还是用@Conditional
      • 编程方式

        • @Conditional 编程条件装配
        • 可参考org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
        • 逻辑 实现Condition接口,并实现matches()方法,如果matches方法返回true,那么带有@Conditional注解的bean就会装载,false就不会装载
        • 例子

          • @ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
          • @ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bean)
          • @ConditionalOnMissingClass(某个class类路径上不存在的时候,才会实例化一个Bean)
          • @ConditionalOnNotWebApplication(不是web应用)
  • 自动装配:

    • Java SPI机制

      • 为某个接口寻×××实现的机制
    • META-INF

      • 存在程序入口相关信息, 每个jar 都会有这个文件夹
    • spring.factories

      • key-value形式,需要根据key来装配的配置
    • 实现原则

      • 理念:约定大于配置原则
      • 装配:模式装配、@Enable注解装配、条件装配
      • 步骤:激活自动装配、实现自动装配、配置自动装配
    • 底层装配技术

      • Spring 模式注解装配
      • Spring @Enable 模块装配
      • Spring 条件装配装配
      • Spring 工厂加载机制

        • 实现类: SpringFactoriesLoader (类似与Java SPI机制的一个加载类)
        • 配置资源: META-INF/spring.factories
    • 自定义自动条件装配

      • 定义配置,可使用模式注解,enable注解,条件注解等加载配置
      • 配置资源: META-INF/spring.factories,放在EnableAutoConfiguration后面

springboot的启动过程

  • 准备阶段

    • 准备自动装载的配置
    • 准备需要加载的监听器
  • 运行阶段

    • 准备环境,允许调整
    • 初始化容器

本文链接:

https://heyzen.club/index.php/J/240.html
1 + 4 =
快来做第一个评论的人吧~