Spring Boot starter总结

发布于 2024-07-17
871

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

扫码阅读
手机扫码阅读
Spring Boot Starter总结

Spring Boot Starter总结

1. Starter介绍

Spring Boot通过starter机制简化了项目搭建和配置。starter是一组依赖和初始化配置的集合,分为Spring官方提供的starter(如spring-boot-starter-web)和第三方定义的starter(如mybatis-spring-boot-starter)。

2. Starter原理

Spring Boot简化开发的关键在于起步依赖和自动配置。

2.1 起步依赖

起步依赖将相关功能的依赖打包到一起,简化了依赖导入。例如引入spring-boot-starter-web可以自动导入与Web开发相关的依赖。

2.2 自动配置

自动配置通过以下步骤完成:基于Java代码的Bean配置、自动配置条件依赖、Bean参数获取、Bean的发现及加载。

2.2.1 基于Java代码的Bean配置

通过@Configuration和@Bean注解实现基于Java代码的Bean配置,替代传统的XML配置文件。

2.2.2 自动配置条件依赖

自动配置依赖于类路径中的特定Bean或类,使用Spring Boot特有的条件注解(如@ConditionalOnBean、@ConditionalOnClass等)。

2.2.3 Bean参数获取

借助@ConfigurationProperties注解将配置文件中的属性封装到Bean中,通过@EnableConfigurationProperties使其生效。

2.2.4 Bean的发现

Spring Boot通过@EnableAutoConfiguration和@Import注解实现依赖包中Bean的发现与加载。

2.2.5 Bean的加载

Spring Boot使用@Import注解从META-INF/spring.factories文件中加载自动配置的Bean。

2.3 自动配置总结

自动配置关键步骤:使用@Configuration与@Bean配置Bean,设置条件依赖,读取配置文件,发现并加载Bean。

3. 自定义Starter

通过自定义starter进一步理解其工作原理。

3.1 案例一

开发了一个hello-spring-boot-starter,用于自动配置HelloService实例。

3.1.1 开发starter

步骤包括创建工程、定义配置属性类、服务类、自动配置类,并配置META-INF/spring.factories文件。

3.1.2 使用starter

在应用中引入starter,通过配置文件和Controller使用自动配置的HelloService。

3.2 案例二

在案例一的基础上,开发用于记录日志功能的拦截器。

3.2.1 开发starter

新增MyLog注解和MyLogInterceptor拦截器,并通过自动配置类注册拦截器。

3.2.2 使用starter

在Controller方法上添加@MyLog注解,实现日志记录功能。

springboot葵花宝典