面试汇总-SpringBoot-杂项

目录

1、SpringBoot核心

1.1、依赖管理

1.2、自动配置

1.3、约定优于配置,体现在哪些方面

2、如何自定义starter

2.1、新建maven工程,并导入自动配置依赖包

2.2、创建JavaBean(业务逻辑)

2.3、​​​​​​​编写配置类

2.4​​​​​​​、Resources下创建META-INF/spring.factories

 3、SpringBoot开启热启动


1、SpringBoot核心

1.1、依赖管理

        将jar包依赖版本交由SpringBoot父项目控制,在子项目中只需要引入相关依赖即可。

        Maven主导,父项目做依赖管理(自动版本仲裁)。即spring-boot-starter-parent提供相关的 Maven 默认依赖,使用它之后,常用包的依赖就可以省去 version 标签。

        在创建SpringBoot项目时,在pom.xml中指定父项目依赖管理spring-boot-starter-parent,如下所示:

<parent> 
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>2.2.9.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent>

        spring-boot-starter-parent的父依赖spring-boot-dependencies,定义了SpringBoot相关版本,通过在父依赖的dependencyManagement标签中统一管理各jar包及其版本号,这样我们在子项目中引入相关jar包的时候,就不用再手动配置版本号了。

1.2、自动配置

        应用程序启动时,spring boot框架自动检测 classpath里的Bean来进行配置。

@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan
  • @SpringBootConfiguration

        和Configuration注解一样,标注当前类是配置类,并会将当前类内生命的Bean交给IOC容器进行管理。

  • @EnableAutoConfiguration

        @AutoConfigurationPackage

        使用@Import,将SpringBoot启动类所在包及其子包里面所有组件加载到Spring容器中。

         @Import(AutoConfigurationImportSelector.class)

    使用内部工具类SpringFactoriesLoader,查找classpath上所有jar包中的META-INF/spring.factories进行加载,实现将配置类信息交给SpringFactory加载器进行一系列的容器创建过程。(spring.factories文件中配置了需要进行加载的Java配置类)。

  • @ComponentScan

        指定扫描的包路径,如果没有指定,则将SpringBootApplication的包路径作为扫描的基本包路径。

​​​​​​​1.3、约定优于配置,体现在哪些方面

  • 默认的配置文件:application.properties 或 application.yml 文件
  • 默认通过 spring.profiles.active 属性来决定运行环境时的配置文件。
  • Maven的目录结构。默认有resources文件夹,存放资源配置文件。

2、如何自定义starter

        命名规范:官方推出的starter 以spring-boot-starter-xxx的格式来命名,第三方开发者自定义的starter则以xxxx-spring-boot-starter的规则来命名。

2.1、新建maven工程,并导入自动配置依赖包

2.2、​​​​​​​创建JavaBean(业务逻辑)

 2.3、​​​​​​​编写配置类

        @Conditional接口:按照一定条件进行判断,满足条件给容器注册Bean。

        常用实现:@ConditionalOnClass、@ConditionOnBean。

        也可配置@Import注解,引入其他的配置类。

 2.4​​​​​​​、Resources下创建META-INF/spring.factories

 3、SpringBoot开启热启动

  以上内容为个人学习总结,仅供学习参考,如有问题,欢迎在评论区指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值