手写一个stater_手写一个springboot starter

springboot的starter的作用就是自动装配。将配置类自动装配好放入ioc容器里。作为一个组件,提供给springboot的程序使用。

今天手写一个starter。写一个dog类,有个bark方法,能叫唤出自己的名字。

建一个普通的maven工程,引入springboot依赖

pom.xml

org.springframework.boot

spring-boot

2.3.1.RELEASE

类定义如下:

public class Dog {

private String name;

private String 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;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

}

Dog定义好以后,要把它注册到spring容器中。建一个configuration类。

@Configuration

public class DogAutoConfiguration {

@Bean

Dog dog (){

Dog dog = new Dog();

return dog;

}

}

bean注册到容器了,可是dog的属性还没有配置。为了能让用户自定义名字,建一个dogProperties

@ConfigurationProperties(prefix = "com.jesseyang")

public class DogProperties {

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;

}

}

更新 configuration类

@EnableConfigurationProperties(DogProperties.class)

@Configuration

public class DogAutoConfiguration {

@Bean

Dog dog (DogProperties dogProperties){

Dog dog = new Dog();

dog.setName(dogProperties.getName());

dog.setColor(dogProperties.getColor());

return dog;

}

}

为了让springboot容器扫描到configuration类,建一个resource目录,一个meta-inf文件夹和spring.factories文件

spring.factories

内容如下

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.jesseyang.configuration.DogAutoConfiguration

这样springboot启动的时候就能扫描到我们的configuration类,注入我们的dog

maven -install一下

新建一个springboot项目,引入我们的项目

com.jesseyang

starter-demo

1.0

application.properties里设置dog的名字

com.jesseyang.name="Jack"

测试一下

@SpringBootApplication

@RestController

public class DemoApplication {

@Autowired

Dog dog;

@RequestMapping("dog")

public String bark(){

return dog.bark();

}

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

访问dog接口

image.png

我们自己的starter就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值