SpringBoot框架解析01——⾃⾏建⽴⼀个Starter项⽬
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>
<!-- mvnrepository/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,去访问这个类的属性时候需要写的是.kenRedisHost
@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) {
}
public String getTokenRedisPwd() {
return tokenRedisPwd;
}
public void setTokenRedisPwd(String 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 TokenRedisHost()+','+TokenRedisPwd();springboot框架是干嘛的
}
}
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)、调⽤⾃动配置包启动并测试。
代码实现:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论