SpringBoot---制作一个starter
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | cgl_dong
来源 | urlify.cn/MV7Nji
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官方微信群
感谢点赞支持下哈
评论