SpringBoot自动配置类

引言:在没有SpringBoot的时候我们需要引用的第三方中间件技术时,需要自己手动配置xml文件或者通过注解将其注入到ioc容器中,并且还需要对其进行一些额外的配置,实现起来会比较麻烦,但是在SpringBoot中我么只需要引入一个stater即可。

在SpringBoot中我们对每个中间件技术 规范一个接口,规定了SpringBoot项目启动时会自动扫描外部引用依赖的META-INF包下的spring.factory文件,就可以将引入的以来进行自动配置,这样的规范可以简化我们对外部依赖配置的操作。简单地说就是在Spring Boot下我们可以通过一些简单的注解就可以实现对外部依赖的自动配置及

我们可以先简单编写一个自动配置类进行测试,主要实现我们在SpringBoot项目启动时自动加载一个Jedis类:

一、创建主项目,starter项目以及autoconfig项目

        创建好之后我们需要将autoconfig(自动配置类)通过依赖引入的方式引入到starter(启动类)中,在pom文件中找到config类的项目标识文件粘贴到starter中,导入依赖,再将导入好的starter类和autoconfig类一起通过starter类的项目表示文件导入到主项目文件的pom文件中。 

项目标识

 二、autoconfig类中的配置

(一)、RedisConfig

        创建RedisConfig实体类,保存Jedis的port和host信息:

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = "spring.data.redis")
public class RedisConfig {
    public String host;
    public int port;
}

        @ConfigurationProperties 加载配置文件的属性赋值

        并在主项目文件的application配置文件中实例化一个Redis并对其属性赋值。 

spring.application.name=demo-main
spring.data.redis.host=localhost
spring.data.redis.port=6000

(二)、AutoConfig

        创建AutoConfig类编写生成Jedis的代码,通过获取RedisConfig的属性值创建Jedis:

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.Jedis;

@Configuration
@EnableConfigurationProperties(RedisConfig.class)
public class AutoConfig {
    @Bean
    @ConditionalOnMissingBean
    public Jedis jedistest(RedisConfig config){
        return new Jedis(config.getHost(),config.getPort());
    }

}

        通过@XConfiguration将类标为配置类,再通过@EnableConfigurationProperties注解开启自动配置类且指向RedisConfig,在方法体中返回一个Jedis。

(三)、通过spring.factories文件指定扫描路径

        在resources文件夹下创建META-INF文件夹并在其中编写spring.factories文件,其中指定了SpringBoot在自动配置时需要扫描的路径

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.ape.demoautoconfig.AutoConfig

三、测试

        在主项目的启动类中,获取Bean对象Jedis并打印输出,成功输出我们在自动配置类中注入的Jedis对象则表示测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值