SpringBoot---制作一个starter

共 2109字,需浏览 5分钟

 ·

2020-10-18 04:28

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

  作者 |  cgl_dong

来源 |  urlify.cn/MV7Nji

66套java从入门到精通实战课程分享


SpringBoot中引入的都是一个个starter,每个starter都是开箱即用,只需要简单的配置就能获取到starter中的各种功能,大大简化了开发,写一个简单的starter。




            org.springframework.boot
            spring-boot-starter-test
            test
        



1、写一个starter

写一个pojo类

这个pojo类用了lombok,所以使用了这个starter的工程也会有lombok的依赖。

package com.cgl.starter.pojo;
 
import lombok.AllArgsConstructor;
import lombok.Data;
 
/**
 * @author cgl
 * @version 1.0
 * @date 2020/9/7 9:12
 */
@Data
@AllArgsConstructor
public class People {
 
    private Integer id;
    private String name;
    private String sex;
    private String age;
}
 


写一个配置类

这个配置类根据@ConditionalOnProperty注解,如果工程中有相应的配置,那么这个配置类生效。

package com.cgl.starter.config;
 
import com.cgl.starter.pojo.People;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
/**
 * @author cgl
 * @version 1.0
 * @date 2020/9/7 9:15
 */
@Configuration
@ConditionalOnProperty(prefix = "start.people",name = "enabled",havingValue = "true")
public class PeopleConfig {
 
    //当这个配置类生效时,这个bean就在容器中
    @Bean
    public People p(){
        return new People(10010,"Jack","man","19");
    }
}
 

设置为自动配置类

在resources/META-INF/spring.factories中,把这个配置类设置为自动装配。

这个starter被引用后,这个配置类生效。

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.cgl.starter.config.PeopleConfig

使用mvn install将starter安装到仓库中。

2、使用这个starter

在工程中导入starter.



            com.cgl
            test-spring-boot-starter
            0.0.1
        


starter中的配置类生效,开始查看配置文件中是否有对应条件。

在配置文件中加入这行配置,使starter配置类生效。

start.people.enabled=true

此时可以拿到starter中配置好的bean了。

@SpringBootTest
@RunWith(SpringRunner.class)
class TestSpringBootApplicationTests {
 
    @Autowired
    People people;
 
    @Test
    void contextLoads() {
        System.out.println(people);
    }
 
}
 
 
People(id=10010, name=Jack, sex=man, age=19)






粉丝福利:108本java从入门到大神精选电子书领取

???

?长按上方锋哥微信二维码 2 秒
备注「1234」即可获取资料以及
可以进入java1234官方微信群



感谢点赞支持下哈 

浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报