Springboot核心

Springboot核心

springboot是什么?

用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) ;
创建独立的spring引用程序 main方法运行 ;
嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter自动化配置。

Spring Boot优点有哪些?

快速创建独立运行的spring项目与主流框架集成
-使用嵌入式的servlet容器,应用无需打包成war包
-starters自动依赖与版本控制
-大量的自动配置,简化开发,也可修改默认值
-准生产环境的运行应用监控 -与云计算的天然集成

如何重新加载Spring Boot上的更改,而无需重新启动服务器?
这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。 开发人员可以重新加载Spring Boot上的更改,而无需重新启动服务器。这将消除每次手动部署更改的需要。Spring Boot在发布它的第一个版本时没有这个功能。 这是开发人员最需要的功能。DevTools模块完全满足开发人员的需求。该模块将在生产环境中被禁用。它还提供H2数据库控制台以更好地测试应用程序。
org.springframework.boot
spring-boot-devtools
true

Spring Boot中的监视器是什么?

Spring boot actuator是spring启动框架中的重要功能之一。Spring boot监视器可帮助您访问生产环境中正在运行的应用程序的当前状态。 有几个指标必须在生产环境中进行检查和监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器模块公开了一组可直接作为HTTP URL访问的REST端点来检查状态。

什么是YAML?

YAML是一种人类可读的数据序列化语言。它通常用于配置文件。 与属性文件相比,如果我们想要在配置文件中添加复杂的属性,YAML文件就更加结构化,而且更少混淆。可以看出YAML具有分层配置数据。

springboot常用的starter有哪些?

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
spring-boot-starter-data-jpa 数据库支持
spring-boot-starter-data-redis redis数据库支持
spring-boot-starter-data-solr solr支持
mybatis-spring-boot-starter 第三方的mybatis集成starter

springboot自动配置的原理?

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration 会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了所有需要被创建spring容器中的bean

springboot读取配置文件的方式?
springboot默认读取配置文件为application.properties或者是application.yml

springboot集成mybatis的过程?
添加mybatis的starter maven依赖
org.mybatis.spring.boot
mybatis-spring-boot-starter
在mybatis的接口中 添加@Mapper注解
在application.yml配置数据源信息

总结Spring Boot Starter的工作原理:
Spring Boot Starter的工作原理如下:

  1. Spring Boot 在启动时扫描项目所依赖的JAR包,寻找包含spring.factories文件的JAR
  2. 根据spring.factories配置加载AutoConfigure类
  3. 根据 @Conditional注解的条件,进行自动配置并将Bean注入Spring Context

Spring Boot的认识:

spring Boot是一个开源框架,它可用于创建可执行的Spring应用程序,采用了习惯优于配置的方法。此框架的神奇之处在于@EnableAutoConfiguration注解,此注释自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。

  1. @Enable注释 @Enable注释并不是新发明的注释,早在Spring 3框架就引入了这些注释,用这些注释替代XML配置文件。
    很多Spring开发者都知道@EnableTransactionManagement注释,它能够声明事务管理;@EnableWebMvc注释,它能启用Spring MVC;以及@EnableScheduling注释,它可以初始化一个调度器。

  2. 属性映射 下面看MongoProperties类,它是一个Spring Boot属性映射的例子: @ConfigurationProperties(prefix = “spring.data.mongodb”) public class MongoProperties { private String host; private int port = DBPort.PORT; private String uri = “mongodb://localhost/test”; private String database; // … getters/ setters omitted }
    @ConfigurationProperties注释将POJO关联到指定前缀的每一个属性。例如,spring.data.mongodb.port属性将映射到这个类的端口属性。 强烈建议Spring Boot开发者使用这种方式来删除与配置属性相关的瓶颈代码。

  3. @Conditional注释 Spring Boot的强大之处在于使用了Spring 4框架的新特性:@Conditional注释,此注释使得只有在特定条件满足时才启用一些配置。 在Spring
    Boot的org.springframework.boot.autoconfigure.condition包中说明了使用@Conditional注释能给我们带来什么,
    下面对这些注释做一个概述: @ConditionalOnBean @ConditionalOnClass
    @ConditionalOnExpression @ConditionalOnMissingBean
    @ConditionalOnMissingClass @ConditionalOnNotWebApplication
    @ConditionalOnResource @ConditionalOnWebApplication

  4. 应用程序上下文初始化器 spring.factories还提供了第二种可能性,即定义应用程序的初始化。这使得我们可以在应用程序载入前操纵Spring的应用程序上下文ApplicationContext。
    特别是,可以在上下文创建监听器,使用ConfigurableApplicationContext类的addApplicationListener()方法。
    AutoConfigurationReportLoggingInitializer监听到系统事件时,比如上下文刷新或应用程序启动故障之类的事件,Spring
    Boot可以执行一些工作。这有助于我们以调试模式启动应用程序时创建自动配置的报告。
    要以调试模式启动应用程序,可以使用-Ddebug标识,或者在application.properties文件这添加属性debug=
    true。

Spring Boot自动装配的本质是:

​​“基于条件注解和类路径扫描,智能推断应用所需组件,并利用后置处理器自动注入容器。”​​

其核心流程:

通过 @EnableAutoConfiguration 激活自动装配。
扫描 spring.factories 加载候选配置类。
利用 @Conditional 过滤出有效的配置类。
通过 @Bean 方法创建Bean并注入容器。
结合 @ConfigurationProperties 绑定外部配置。

这一机制使得开发者只需专注于业务代码,无需手动处理复杂的框架集成,真正实现 ​​“开箱即用”​。理解自动装配原理是掌握Spring Boot的关键,也是解决配置冲突、定制组件的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值