皮皮网

【乐直播系统源码】【源码更改】【currentmap源码】spring starter源码

时间:2024-11-25 08:51:54 分类:时尚 来源:小程序克隆复制源码在哪

1.eclipse 下创建spring starter project
2.SpringBoot源码学习——SpringBoot自动装配源码解析+Spring如何处理配置类的
3.Spring - starter机制
4.spring-boot-starter-parent 哪个jar包
5.玩转 Spring Boot 原理篇(自动装配前凑之自定义Stater)
6.(二)springboot之spring-boot-starter-web

spring starter源码

eclipse 下创建spring starter project

       ä¸€.在eclipse下安装 spring tool suite插件:

            1.help→eclipseMaketplace..→搜索sts.

            2.安装插件,安装不成功的话,降低eclipse版本(-,亲测能有)

         1 选择spring starter project 进行项目的创建,并点击next到下一步

        2 修改项目名称name 和 spring boot的版本,其他项都可以选择默认

        这里可以选择next,也可以选择finish。如果选择next按钮,则会看到步骤3的界面;如果选择finish按钮,则直接跳到步骤4界面。

        3 这里可以选择工作空间等,我们都选择默认空间即可,点击finish到下一步

        4 这里我们会得到一个spring boot 的项目的简单结构

        这时,eclipse一般会自动的进行项目的构建,加载支撑jar包等,得到步骤6的结果;如果eclipse未自动构建项目,则需要手动进行项目构建,参照步骤5进行操作。

        5 点击项目名称,右键 选择 Maven ,选择 Update Project... ,勾选 Force Update of Snapshots/Releases项, 并点击OK按钮。

        然后,项目会进入到更新的过程中,期间可以看到类似如下的更新进度条

        6 待项目更新完成后,我们可以看到一个完整的spring boot 项目

SpringBoot源码学习——SpringBoot自动装配源码解析+Spring如何处理配置类的

       SpringBoot通过SPI机制,借助外部引用jar包中的META-INF/spring.factories文件,实现引入starter即可激活功能,简化手动配置bean,实现即开即用。

       启动SpringBoot服务,乐直播系统源码通常使用Main方法启动,其中@SpringBootApplication注解包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,自动装配的核心。

       深入分析@SpringBootApplication,其实质是执行了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的功能,简化了配置过程,强调了约定大于配置的思想。

       SpringBoot的源码更改自动装配原理着重于研究如何初始化ApplicationContext,Spring依赖于ApplicationContext实现其功能,SpringApplication#run方法为初始化ApplicationContext的入口。

       分析SpringApplication构造方法,SpringApplication.run(启动类.class, args) 实际调用的是该方法,其关键在于根据项目类型反射生成合适的ApplicationContext。

       选择AnnotationConfigServletWebServerApplicationContext,此上下文具备启动Servlet服务器和注册Servlet或过滤器类型bean的能力。

       准备刷新ApplicationContext,SpringBoot将主类注册到Spring容器中,以便@ConfigurationClassPostProcessor解析主类注解,发挥@Import、@ComponentScan的作用。

       刷新ApplicationContext过程包括一系列前置准备,如将主类信息封装成AnnotatedGenericBeanDefinition,解析注解并调用BeanDefinitionCustomizer自定义处理。

       解析配置类中的注解,通过BeanDefinitionRegistryPostProcessor和ConfigurationClassParser实现,currentmap源码筛选、排序候选者,并解析@Import注解实现自动装配。

       增强配置类,ConfigurationClassPostProcessor对full模式的配置进行增强,确保@Import正确处理,CGLIB用于增强原配置类,确保生命周期完整,避免真正执行@Bean方法逻辑。

       深入解析AutoConfigurationImportSelector实现自动装配,通过spring.boot.enableautoconfiguration设置开启状态,读取spring-autoconfigure-metadata.properties和META-INF/spring.factories文件,筛选并加载自动配置类。

Spring - starter机制

       Spring starter 是 SpringBoot 的核心组件,它能简化开发过程,提供可插拔式的插件,无需繁琐的pythonbif源码配置即可使用其功能。

       实现原理基于两个关键步骤:引入 maven 依赖和配置文件。引入 maven 是为了导入 jar 包,SpringBoot 启动时会读取 jar 包内的 resources/META-INF/spring.factories 文件,根据文件中的配置信息自动寻找需要配置的类。

       在创建 SpringBoot 程序时,通常在启动类中生成一个入口函数并添加 @SpringBootApplication 注解,该注解包含 @EnableAutoConfiguration,用于自动扫描 jar 包内的配置。

       进入 @EnableAutoConfiguration,会发现它使用了 @Import(AutoConfigurationImportSelector.class) 注解,该注解将包含 @Configuration 注解的配置类装配至程序中。

       以红绿灯管理器的 Redission-spring-boot-starter 为例,其结构如下:

       1. pom.properties:配置 Maven 必需的项目版本、groupId 和 artifactId。

       2. pom.xml:配置依赖的 jar 包。

       3. MANIFEST.MF:记录 jar 文件的基本信息。

       4. spring.factories:配置需要自动装配的foa源码类信息。

       5. spring.provides:配置所依赖的 artifactId,为 IDE 提供信息,无其他作用。

       6. RedissonAutoConfiguration:是自动配置类,主要负责 Redis 连接操作,包含辅助性注解,决定 @Configuration 注解的生效场景及顺序。

       主要辅助注解包括:

       1. RedissonProperties:属性实体类,将 yml 或 properties 配置文件转化为 bean,设置了前缀,方便在项目的 application.properties 配置文件中提示相关 bean 实例属性。

       2. RedissonAutoConfigurationCustomizer:实现自定义 RedissonClient 的自动配置。

       通过引入 Redission-spring-boot-starter,自动引入 Redis 连接模块,只需在 yml 或 properties 文件中配置基本参数,Spring 自动装配,完成连接功能。

       自定义 starter 的方法参考 starter 的实现原理,建议命名为 *-spring-boot-starter。此过程需遵循特定规范,确保自定义 starter 可以无缝集成至 SpringBoot 环境。

spring-boot-starter-parent 哪个jar包

       spring官方包里,lib目录里除了带resource后缀的jar包,初学建议都加上,入门之后,你就明白你的项目里需要哪些包,不需要哪些包了。带resource后缀的jar是源码。

玩转 Spring Boot 原理篇(自动装配前凑之自定义Stater)

       自动装配在Spring Boot框架中的重要性不言而喻,它简化了开发者的工作,使得应用的构建更加高效、便捷。为了更深入地理解这一原理,本文将以自定义Spring Boot Starter的方式,从代码层面直观感受自动装配的威力。

       在开始之前,我们先对历史文章进行整理,以确保全面了解Spring Boot的集成应用,包括MySQL、Druid、HikariCP等数据库连接,MyBatis、JPA和事务支持,Redis的集成,Actuator和Spring Boot Admin的使用,RabbitMQ的引入,@Scheduled和静态、动态定时任务的实现,以及任务动态管理代码篇和定时任务框架Quartz。

       接下来,我们将关注Spring Boot自动装配的核心原理,特别是自定义Starter的实现。以mybatis-spring-boot-starter为参考,我们将通过模仿其自动配置机制来构建一个猜数字游戏服务的Starter。

       ### 找到葫芦

       将mybatis-spring-boot-starter作为葫芦参考,观察其在pom文件中的依赖结构和自动配置机制。重点关注其在META-INF/spring.factories文件中的配置,以及自动配置类MybatisAutoConfiguration,如何生成SqlSessionFactory、SqlSessionTemplate等MyBatis实例,并将其注册到Spring容器。

       ### 自定义Spring Boot Starter实现

       按照葫芦画瓢的思路,我们将创建一个猜数字游戏服务的自定义Starter。首先,定义项目结构,添加依赖配置,创建Service和自动配置类,设置条件注解以实现自动装配功能。接着,编写配置文件和自动装配类,完成自动装配的机制。

       在完成自定义Starter的构建后,我们将该Starter引入到游戏服务端的配置中,通过application.properties文件开启自动装配功能。至此,游戏服务端可以自动装配所需的组件,简化了代码的编写和维护。

       通过实际运行GameApplication,我们可以看到游戏服务端通过自动装配成功运行猜数字游戏,验证了自定义Starter的正确性。

       ### 总结

       本文详细介绍了如何通过自定义Spring Boot Starter来实现自动装配的功能,从代码层面深入理解了Spring Boot的自动装配机制。通过本次实践,我们不仅掌握了如何构建自定义Starter,还对Spring Boot的自动装配原理有了更直观的认识。接下来,我们将继续深入源码解析,探讨自动装配实现的细节,敬请期待!

(二)springboot之spring-boot-starter-web

       springboot版本:3.0.2

       通过查看spring-boot-starter-web依赖文件的源码,我们可以发现其依赖的jar包包括以下内容:

       spring-boot-starter-web依赖启动器的主要功能是为Web开发提供所有必要的底层依赖。

       因此,在pom.xml文件中引入spring-boot-starter-web依赖启动器之后,我们就可以直接进行Web场景的开发,无需额外导入Tomcat服务器或其他Web依赖文件。当然,这些依赖文件的版本号是由spring-boot-starter-parent父依赖进行统一管理的。

       详细依赖图,请访问:spring-boot-starter-web依赖图 思维导图模板_ProcessOn思维导图、流程图 获取。

copyright © 2016 powered by 皮皮网   sitemap