首页 > 其他分享 >Spring Boot的自动装配

Spring Boot的自动装配

时间:2024-05-03 20:44:52浏览次数:14  
标签:装配 依赖 Spring 配置 Boot 自动 Starter

Spring Boot的自动装配(Auto-Configuration)是一种设计机制,旨在减少传统Spring应用中繁复的XML配置和大量的手动Bean定义。

  1. @EnableAutoConfiguration:

    • 该注解是自动装配的入口,通常在Spring Boot应用的主配置类上使用。它通过@Configuration表明该类为配置类,并通过@Import导入一个自动配置的处理器,该处理器负责读取并加载所有符合条件的自动配置类。
  2. META-INF/spring.factories:

    • Spring Boot在类路径下查找所有jar包中名为META-INF/spring.factories的文件。这个文件列出了自动配置类及其对应的条件注解,如@ConditionalOnClass@ConditionalOnMissingBean等。这些条件注解确保只有当特定类存在或不存在于类路径上,或者特定属性被设置时,相应的自动配置才会生效。
  3. 条件化配置(Conditional Configuration):

    • 自动配置类内部广泛使用条件注解来决定是否应用特定配置。这意味着配置是按需加载的,仅当应用满足特定条件时才会被激活。
  4. SpringFactoriesLoader:

    • 这是一个核心类,负责从spring.factories文件中加载和注册自动配置类。它根据配置文件中的键值对,实例化并注册相应的配置类到Spring容器中。
  5. 依赖扫描与管理:

    • Spring Boot通过Maven或Gradle等构建工具管理项目依赖,并根据这些依赖自动调整配置。例如,引入了Spring Boot Starter Web依赖,就会自动配置Tomcat服务器和Spring MVC。
  6. Starter依赖:

    • Spring Boot提供了许多Starter POMs,它们是一组预配置的依赖集合,用于快速集成特定的技术或服务,如Spring Boot Starter Data JPA用于数据库访问,Spring Boot Starter Security用于安全配置。
  7. 默认值与覆盖:

    • 当没有明确的用户配置时,Spring Boot会提供合理的默认配置。但用户可以通过application.properties或application.yml文件,以及外部配置源来覆盖这些默认值。

标签:装配,依赖,Spring,配置,Boot,自动,Starter
From: https://www.cnblogs.com/syhxx/p/18171583

相关文章

  • uboot-学习笔记
    uboot引导程序的作用不同bootloader的对比系统启动自举过程阶段iROM读取流程......
  • Spring AOP
    AOP简介A0P(AspectOrientedProgramming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(objectOrientedProgramming)面向对象编程作用:在不惊动原始设计的基础上为其进行功能增强Spring理念:无入侵式/无侵入式AOP核心概念连接点(JoinPoint):程序执行过程中的......
  • Spring 中 bean 的生命周期
    Spring中的bean指的是被IoC管理的对象,通常都是以DI的方式来使用,并不需要手动管理它们的生命周期。但是,有时候我们需要对特定的bean进行额外的初始化、销毁操作,此时就可以通过Spring中的拓展接口来实现。基本生命周期Spring中IoC的顶层接口是BeanFactory,默认实现......
  • 解决创建SpringBoot工程加载较慢的问题
    设置ServerURL将https://start.spring.io改为https://start.aliyun.com如图所示:启动演示如图所示,启动成功......
  • SpringBoot3.1.5对应新版本SpringCloud开发(1)-Eureka注册中心
    服务的提供者和消费者服务之间可以通过Spring提供的RestTemplate来进行http请求去请求另一个Springboot的项目,这就叫做服务间的远程调用。当一个服务通过远程调用去调用另一个服务时,被调用的服务就叫做服务的提供者,调用服务的服务就叫做服务的消费者。一个服务可以既是服务的提......
  • 蚂蚁面试:Springcloud核心组件的底层原理,你知道多少?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • springboot+MDCAdapter自定义starter实现日志全链路追踪
    MDCMDC(MappedDiagnosticContext,映射调试上下文)是日志系统提供的一种方便在多线程条件下记录日志的功能使用场景一个常用的场景就是Web服务器中给每个请求都分配一个独特的请求id,所有的日志都会打印这个请求id,这样一个请求下的所有日志信息都可以很方便的找到。欢迎关注个人公......
  • SpringBoot中分页插件PageHelper的使用
    SpringBoot如何使用PageHelper实现分页查询在原始的分页查询方法中,需要编写复杂的SQL语句来限制查询结果的范围,通常需要使用LIMIT或者ROWNUM等数据库特定的语法来实现分页。在每个需要分页的查询方法中,都需要手动计算分页的起始位置和偏移量,通常需要根据页码和每页数量来计算,这部......
  • Field registration in org.springframework.cloud.client.serviceregistry.ServiceRe
    Fieldregistrationinorg.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration$ServiceRegistryEndpointConfigurationrequiredasinglebean,but2werefound: -nacosRegistration:definedbymethod'nacosRegistration'in......
  • SpringMVC(2)-Rest请求风格
    REST:RepresentationalStateTransfer,(资源)表现层状态转化。REST是目前流行的请求方式。在HTTP协议中,有四个基本操作:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。REST就是通过get/post/put/delete说明crud的类型。REST的核心过滤器浏览器form表单......