Spring Boot中starter封装

starter原理

  1. SpringBoot 在启动时会去依赖的starter包中寻找 resources/META-INF/spring.factories 文件,然后根据文件中配置的Jar包去扫描项目所依赖的Jar包,这类似于 Java 的 SPI 机制。
  2. 根据 spring.factories 配置加载AutoConfigure类。
  3. 根据 @Conditional 注解的条件,进行自动配置并将Bean注入Spring Context 上下文当中。

starter封装

1.准备好要封装的mvn项目converter-core
2.新建一个module项目converter-spring-starter,在最外层pom文件中引入该module。

<module>converter-spring-starter</module>

3 在converter-spring-starter下的pom文件中引入依赖

<dependency>
    <groupId>com.converter</groupId>
    <artifactId>converter-core</artifactId>
    <version>${converterVersion}</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <exclusions>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
        <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>

4 自动配置类
使用@Configuration和@Bean配置

@Configuration
@ConditionalOnClass(prefix=xxx.class)

public static void AutoConfig(){   
    @Bean
    public Config msgConfig(){
    	return new Config();
    }
}

5 新建启动文件。
在resource下新建META-INF文件夹,并在下面新建spring.factories文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
 x.x.x.AutoConfig

6 启动类
编写项目入口启动类

@SpringBootApplication
public class ConverterApplication(){
    public static void main(String[]args){
        SpringApplication.run(ConverterApplication.class);
    }
}

测试

1 测试类包名和启动类包名一致
测试类代码

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ConverterApplication.class)
public class BaseTest{
	@Autowired
	private Config msgConfig;

	@Test
	public void Test(){
		测试代码;
	}
}

@SpringBootTest注解是一个Spring Boot提供的注解,通过这个注解可以使JUnit单元测试跑在Spring Boot的运行环境中。

@RunWith注解是一个运行器,其接受一个类的签名来指定是使用什么类、在什么环境下运行。
@RunWith(JUnit4.class)就是指用JUnit4来运行。
@RunWith(SpringJUnit4ClassRunner.class)就是让测试运行于Spring测试环境。

2 在test/resource中进行文件配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值