玩转SpringBoot原理:掌握核心技术,成为高级开发者(springboot的底层原理)

  本篇文章为你整理了玩转SpringBoot原理:掌握核心技术,成为高级开发者(springboot的底层原理)的详细内容,包含有springboot运行原理流程 springboot的底层原理 springboot的工作原理图 springboot原理详解 玩转SpringBoot原理:掌握核心技术,成为高级开发者,希望能帮助你了解 玩转SpringBoot原理:掌握核心技术,成为高级开发者。

   本文通过编写一个自定义starter来学习springboot的底层原理,帮助我们更好的使用springboot集成第三方插件

  
 

  本文通过编写一个自定义starter来学习springboot的底层原理,帮助我们更好的使用springboot集成第三方插件

  步骤一:创建项目

  步骤二:添加依赖

  步骤三:创建自动配置类

  步骤四:创建属性类

  步骤五:创建服务类

  步骤六:添加自动配置类到Springboot自动配置列表中

  步骤七:打包并发布

  步骤八:在其他项目中使用自定义starter

  步骤一:创建项目

  

世界上最伟大的成就,不是从不失败,

 

  而是每次失败后,仍能振作起来。

  

 

  首先,我们需要创建一个Springboot项目。删除启动类,配置文件,添加META-INF文件夹和spring.factories,最终项目结构如下

  步骤二:添加依赖

  在创建完项目后,我们需要在pom.xml文件中添加以下三个依赖:

  

 dependency 

 

   groupId org.springframework.boot /groupId

   artifactId spring-boot-starter /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-autoconfigure /artifactId

   /dependency

   dependency

   groupId org.springframework.boot /groupId

   artifactId spring-boot-configuration-processor /artifactId

   version 2.7.0 /version

   optional true /optional

   /dependency

  

 

  第一个依赖是Springboot的starter依赖,第二个依赖是Springboot的自动配置依赖。第三个是自动生成帮助文档和元数据,以帮助IDE自动完成和参数提示。
 

  步骤三:创建自动配置类

  

当你感到疲惫时,不要停下脚步,

 

  因为你不知道,下一步可能就是成功。

  

 

  自动配置类是整个自定义starter的核心部分。我们需要在自动配置类中完成以下任务:

  使用@Configuration注解将该类标记为配置类。

  使用@EnableConfigurationProperties注解引入属性配置类。

  使用@Bean注解将自定义服务类注入到Spring容器中。

  下面是一个示例代码:

  

@Configuration

 

  @EnableConfigurationProperties(YoulaiProperties.class)

  public class YoulaiAutoConfiguration {

   private final YoulaiProperties properties;

   public YoulaiAutoConfiguration(YoulaiProperties properties) {

   this.properties = properties;

   @Bean

   public YoulaiService myService() {

   return new YoulaiService(properties.toString());

  

 

  步骤四:创建属性类

  

光阴似箭,日月如梭,生命短暂而珍贵,

 

  让我们在有生之年做自己想做的事情。

  

 

  属性类用来存储自定义的配置属性。我们需要在属性类中完成以下任务:

  使用@ConfigurationProperties注解将该类标记为属性类。

  使用prefix属性指定属性名前缀。

  定义对应的属性字段,并提供getter和setter方法。

  下面是一个示例代码:

  

@Component

 

  @ConfigurationProperties(prefix = "youlai")

  public class YoulaiProperties {

   private String bio = "youlai-mall 是基于Spring Boot 2.7、Spring Cloud 2021 Alibaba 2021、Vue3、Element-Plus、uni-app等全栈主流技术栈构建的开源商城项目,涉及 后端微服务、 前端管理、 微信小程序和 APP应用等多端的开发。";

   private String serverPath="https://admin.youlai.tech/#/login?redirect=/dashboard";

   private String apiPath="https://api.youlai.tech/doc.html#/home";

   public String getBio() {

   return bio;

   public void setBio(String bio) {

   this.bio = bio;

   public String getServerPath() {

   return serverPath;

   public void setServerPath(String serverPath) {

   this.serverPath = serverPath;

   public String getApiPath() {

   return apiPath;

   public void setApiPath(String apiPath) {

   this.apiPath = apiPath;

   @Override

   public String toString() {

   return "YoulaiProperties{" +

   "bio=" + bio + \ +

   ", serverPath=" + serverPath + \ +

   ", apiPath=" + apiPath + \ +

   };

  

 

  步骤五:创建服务类

  服务类是自定义starter提供的服务。我们需要在服务类中定义服务方法,提供的服务。我这演示读取配置文件

  下面是示例代码:

  

 

 

  public class YoulaiService {

   private String config;

   public YoulaiService(String config) {

   this.config = config;

   public void doSomething() {

   System.out.println("Config value is: " + config);

  

 

  步骤六:添加自动配置类到Springboot自动配置列表中

  为了让Springboot能够自动配置我们的starter,我们需要将自动配置类添加到META-INF/spring.factories文件中,springboot启动会读取这个文件,并将他注入到spring的容器中,如下所示:

  

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.youlai.springbootstarter.YoulaiAutoConfiguration

 

  

 

  除了这种自动装配,还有一种被动装配,由使用方决定是否需要装配,这种只需要定义一个注解就好了

  

@Target(ElementType.TYPE)

 

  @Retention(RetentionPolicy.RUNTIME)

  @Documented

  @Import(YoulaiAutoConfiguration.class)

  public @interface EnableYoulai {

  

 

  步骤七:打包并发布

  完成以上步骤后,我们可以使用Idea将项目打包并发布到Maven仓库中,我这里演示打包到本地

  步骤八:在其他项目中使用自定义starter

  

成功不是偶然的,而是你日复一日努力的结果,

 

  永远不要放弃自己的梦想。

  

 

  在其他Springboot项目中,我们只需要在pom.xml文件中添加以下依赖即可:

  

 dependency 

 

   groupId com.youlai-learing /groupId

   artifactId youlai-spring-boot-starter /artifactId

   version 0.0.1-SNAPSHOT /version

   /dependency

  

 

  如果是被动装配,则在启动类加上开启注解:

  

@SpringBootApplication

 

  @EnableYoulai

  public class SpringbootStarterConsumerApplication {

   public static void main(String[] args) {

   SpringApplication.run(SpringbootStarterConsumerApplication.class, args);

  

 

  然后就可以在代码中使用我们在自定义starter中提供的服务了,如下所示:

  

 @Resource

 

   private YoulaiService youlaiService;

   @Test

   void contextLoads() {

   youlaiService.doSomething();

  

 

  完整代码地址:https://gitee.com/youlaiorg/youlai-learning.git

  通过本文的介绍,我们学习到如何编写Springboot自定义starter,并且清楚了springboot自动装配的原理

  

把握当下,不留遗憾,珍惜身边人,

 

  感恩生命中的每一个瞬间。

  

 

  以上就是玩转SpringBoot原理:掌握核心技术,成为高级开发者(springboot的底层原理)的详细内容,想要了解更多 玩转SpringBoot原理:掌握核心技术,成为高级开发者的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: