springboot自动配置demo

先创建需要自动配置的类

1
2
3
4
5
6
7
8
9
10
11
12
package com.jianganwei.autoconfigdemo.demo;

import org.springframework.beans.factory.annotation.Value;

public class AutoconfigDemo {
@Value("${init.message}")
private String message;

public void sout() {
System.out.println("the message is: " + message);
}
}

编写创建该类的条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Demo {
@Bean
@ConditionalOnMissingBean(AutoconfigDemo.class)
@ConfigurationProperties(prefix = "init")
@ConditionalOnProperty(prefix = "init",value = "message")
public AutoconfigDemo getDemo(){
return new AutoconfigDemo();
}
}

最后在resources 目录下创建 META-INF/spring.factories

在文件中配入需要自动创建的bean 条件类

1
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.jianganwei.autoconfigdemo.demo.Demo