Spring Boot框架解析01 ——自行建立一个Starter项目

本文详细介绍了如何创建和使用Spring Boot自定义Starter项目,包括创建Maven项目、配置依赖、编写配置类和服务类,以及创建spring.factories文件。此外,还讲述了如何将Starter打包到本地仓库,以及在新的Spring Boot项目中引入和测试自定义Starter。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring Boot框架解析01

前言:经过博主最近细心研究,直接写代码再来理解原理可能会让人学的东西多一点,其次要记住博文要短小精悍!因此此博文直接上代码。

一、创建Spring Boot自定义Starter项目

博主将代码实现分成5步。

1、创建MAVEN项目并配置依赖。
2、创建xxxproperties类,做配置的属性类。
3、创建xxxAuotConfigre类做配置类。
4、创建xxxservice类做服务类。
5、创建spring.factories文件用来给自动配置类读取目标类信息。

  • (1)、创建一个空的maven项目,并加上spring-boot-autoconfigure(此依赖是执行Starter关键依赖,通过此依赖进行创建)
    在这里插入图片描述
    代码:由于篇幅有限此处只展示核心代码。
    <dependencies>
<!--自动配置依赖,这个是实现start项目的核心点-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.1.6.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-configuration-processor -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.1.7.RELEASE</version>
        </dependency>
    </dependencies>
  • (2)、创建TokenProperties类:
//上面这个注解 是spring注解中的一个通过配置去读数据的注解 ,prefix,代表的是前缀,当你通过,application.properties,去访问这个类的属性时候需要写的是.mayikt.tokenRedisHost
@ConfigurationProperties(prefix = "mayikt")
public class TokenProperties {
    //可以给默认的数据,给一个常量
    private static final String TOKENREDISHOST="127.0.0.1";
    private String tokenRedisHost=TOKENREDISHOST;
    private String tokenRedisPwd;
    //配置文件中是要遵循驼峰式额 就是没有大写的 。我们现在写的是tokenRedisPwd但是实际上在,我们属性中设置这个属性的值的时候是 token-redis-pwd。这个了 是springboot通过小驼峰进行的替换.
	//这里是get,set方法。
    public String getTokenRedisHost() {
        return tokenRedisHost;
    }
    public void setTokenRedisHost(String tokenRedisHost) {
        this.tokenRedisHost = tokenRedisHost;
    }
    public String getTokenRedisPwd() {
        return tokenRedisPwd;
    }
    public void setTokenRedisPwd(String tokenRedisPwd) {
        this.tokenRedisPwd = tokenRedisPwd;
    }
}

  • (3)、创建TokenAutoConfiguration类做配置类。
    这个类就是当配置类的:
@Configuration//声明为配置类
@EnableConfigurationProperties(TokenProperties.class)//自动配置类加载了配置的属性
@ConditionalOnClass(TokenService.class) //此注解判断TokenService这个类是否在类路径中存在
@ConditionalOnProperty(prefix = "mayikt")
public class TokenAutoConfiguration {
    //这个就是 自动配置 类,这个是实现的 关键点 !
    @Bean	/此处使用configuration和,bean的方式 进行IoC控制。(spring框架解析02有讲过原理,有兴趣的小伙伴可以去看。)
   public TokenService tokenService (){
         return new TokenService();
    }
}
  • (4)创建TokenService 类做服务类。
public class TokenService {
    @Autowired//自动注入
    private  TokenProperties tokenProperties;
    public String getToken(){
    //此代码是模拟token的自动starter
        System.out.print("模拟生成了token");
        return  tokenProperties.getTokenRedisHost()+','+tokenProperties.getTokenRedisPwd();
    }
}

  • 5、创建spring.factories文件

此文件需要创建在resources的META-INF下面,至于为什么 ?因为SpringBoot默认读取这个文件就是通过这个路径来的。

在这里插入图片描述

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 com.demo.TokenAutoConfiguration
#此处的 \是为了 换行也能读取到下面的 配置文件 ,这个文件的作用就是来告诉我们呢的IoC容器,配置文件在哪里。

至此,我们的Starter项目便创建完成!

二、Spring Boot自定义Starter项目的使用

上一章,博主只是讲述如何创建Starter代码,并未讲如何使用,接下来我们将通过一个SpirngBoot项目来调用我们这个Starter。
博主将接下来的步骤分为三个步骤
1、将我们创建的MAVEN依赖打包到本地仓库中去。
2、在新建的SpringBoot的项目中添加我们自定义的Starter依赖。
3、将我们的自动配置包启动并测试。

  • (1)、将自定义Starter项目打包导入本地的maven仓库.

命令:mvn clean install

操作:
在这里插入图片描述
效果:
在这里插入图片描述

  • (2)、在新建的SpringBoot的项目中添加我们自定义的Starter依赖.
    操作:通过IDEA创建一个新的项目,并添加自定义的Starter依赖。
    在这里插入图片描述
    代码:此POM文件只体现了我们需要的 依赖包
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<version>2.1.7.RELEASE</version>
		</dependency>
<!--引入自己编写的 startjar包 .-->
		<dependency>
			<groupId>com.springboot.demo</groupId>
			<artifactId>demo09-teststater</artifactId>
			<version>1.0-SNAPSHOT</version>
		</dependency>
	</dependencies>
  • (3)、调用自动配置包启动并测试。

代码实现:

//Spring mvc中的 控制 返回的 是 java代码的 控制
@RestController
@SpringBootApplication
public class Demo10TeststartApplication {
     //首先把配置类给拿出来,这个就是老生常谈的问题,自动注入。 .
	@Autowired
   private 	TokenService tokenService;
	@RequestMapping("/") // 访问的路径 默认 localhost:8080/
	public String getToken(){
		return tokenService.getToken();
	}
	public static void main(String[] args) {
	SpringApplication.run(Demo10TeststartApplication.class, args);
	}

}
  • 4 效果
    在这里插入图片描述
    访问效果。
    在这里插入图片描述

总结

Spring-Boot-Start是实现Spring-Boot快速合并其他框架的重要工具和原理之一。他是通过自动配置 spring-boot-autoconfigure这个依赖包进行自动化配置,从而减轻开发人员模板化的配置。
理解Spring-Boot-Strat会很好的帮助我们理解Spring如何启动项目并如果通过一个SpringBoot项目就可以进行合并其他框架的原理。
我建议小伙伴可以参考本博文进行尝试。

此次博客,博主通过参考蚂蚁课堂以及Spirng Boot实战书籍进行编写本博文。接下来,我在解析框架的同时也会加入一个springCloud电商项目的开发,感兴趣的小伙伴可以关注一波溜了!就这样,溜了,啾咪~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值