原文链接:https://www.jianshu.com/p/167e0b85ed2f
如若侵权请联系博主删除
springboot的starter的作用就是自动装配。将配置类自动装配放入到ioc容器中,作为一个组件,提供给springboot程序使用。
手写example: 编写一个dog类,有个bark方法,能叫唤出自己的名字
1、创建一个普通的maven工程,引入springboot依赖
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.3.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.3.1.RELEASE</version>
</dependency>
2、定义Dog类
public class Dog {
private Logger logger = Logger.getLogger(String.valueOf(Dog.class));
private String name;
private String color;
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Dog(){
logger.info("Dog构造器。。。。");
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + color +
'}';
}
public String bark(){
System.out.println("My name is "+name);
return "My name is "+name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3、创建ReadDogProperties,通过读取配置文件信息为Dog类属性赋值
@ConfigurationProperties(prefix = "com.ljt")
public class ReadDogProperites {
private String name;
private String color;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
4、将Dog类注入到spring容器中
@EnableConfigurationProperties(ReadDogProperites.class)
@Configuration
public class DogAutoConfiguration {
private Logger logger = Logger.getLogger(String.valueOf(DogAutoConfiguration.class));
@Bean
Dog dog(ReadDogProperites readDogProperites){
logger.info("创建Dog bean。。。。");
Dog dog = new Dog();
dog.setName(readDogProperites.getName());
dog.setColor(readDogProperites.getColor());
return dog;
}
}
5、为了让springboot容器扫描到configuration类,创建一个resource目录,meta-inf文件夹与spring.factories文件,spring.factories配置自动配置的类路径,
maven -install一下
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ljt.config.DogAutoConfiguration
至此starter制作好了
===========================================================
6、新建一个springboot项目,pom文件引入我们的项目,配置文件中设置dog名字
application.properties中配置
com.ljt.name=wangcai
7、controller中注入Dog 获取dog的名字
测试结果: