Spring Boot starter总结
871
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
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葵花宝典
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
白皮书上线