springboot学习----9.自定义starter

自定义starter

准备一个空工程,其中有两个模块:
在这里插入图片描述
编写一个HelloService类:

@Service
public class HelloService {

    private HelloProperties helloProperties;

    public HelloProperties getHelloProperties() {
        return helloProperties;
    }

    public void setHelloProperties(HelloProperties helloProperties) {
        this.helloProperties = helloProperties;
    }

    public String hello(String name){
        return helloProperties.getPrefix()+"*******"+name+"*******"+helloProperties.getSuffix();
    }
}

其中方法的返回值的结果是可以配置的:

@ConfigurationProperties(prefix = "yxy.hello")
public class HelloProperties {

    private String prefix;
    private String suffix;

    public String getPrefix() {
        return prefix;
    }

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    public String getSuffix() {
        return suffix;
    }

    public void setSuffix(String suffix) {
        this.suffix = suffix;
    }
}

编写自动配置类:

@Configuration //配置类
@ConditionalOnWebApplication //web应用自动配置才生效
@EnableConfigurationProperties(value = {HelloProperties.class}) //指定配置文件
public class HelloServiceAutoConfiguration {

    @Autowired
    private HelloProperties helloProperties;

	/**
	* 将HelloService加入到容器中
	*/
    @Bean
    public HelloService helloService(){
        HelloService helloService = new HelloService();
        helloService.setHelloProperties(helloProperties);
        return helloService;
    }
}

在类路劲下新建一个文件放在META-INF目录下:
在这里插入图片描述
将自动配置类添加到spring.factories中,springboot启动时会自动加载

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yxy.starter.configure.service.HelloServiceAutoConfiguration

然后将我们的自动配置模块和starter安装到maven仓库中:
springboot学习----9.自定义starter_第1张图片
springboot学习----9.自定义starter_第2张图片
弄了这么久了,测试一下能不能用\(^o^)/~

准备一个测试项目:
然后引入自己的启动器:
springboot学习----9.自定义starter_第3张图片
可以发现是能够正常引用的
在配置文件中配置属性:
在这里插入图片描述
编写控制器测试:
springboot学习----9.自定义starter_第4张图片

自定义简单starter成功,撒花✿✿ヽ(°▽°)ノ✿

你可能感兴趣的:(springboot)