SpringBoot---制作一个starter
java1234
共 2109字,需浏览 5分钟
· 2020-10-18
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
作者 | 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官方微信群
感谢点赞支持下哈
评论
一个朋友
一个朋友,在深圳奋斗7年,和女友在去年合力在龙华买了一套房,总价600万,首付3成。但就在昨天,他们崩溃了。深圳推出可售型人才住房,就在他们新房附近,同样面积,总价不到400万,售价近乎腰斩。他们想不明白,同样是深圳人,买房人为什么都要被当成炒房客对待?二手房冰封,卖不出,新房不断打着,像极了上世纪
嵌入式Linux
0
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
测试新人,如何快速上手一个陌生的系统!
大家好,我是狂师!作为刚入行不久的测试新人,面对一个陌生的系统时,可能会感到有些手足无措。面对一个全新的系统系统,如何快速上手并展开有效的测试工作是一个重要的挑战。本文将探讨测试新人如何通过一系列步骤和策略,快速熟悉并掌握新系统的测试要点,从而提高测试效率和质量。本文旨在为测试新手提供一份指导,帮助
测试开发技术
0
Windows格式化对话框是一个使用了30年的 “临时解决方案”
戴夫-普卢默(Dave Plummer)是微软的资深工程师,曾创造了任务管理器、Windows 弹球、原生 ZIP 支持(微软出钱买断该功能后,他用这笔钱购买了一辆红色克尔维特)等传奇。近日他在自己的 X 账户上分享了创建 "格式化" 对话框的故事 —— 称其是一个使用了长达 30 年的 “临时解决
开源Linux
0
一个神奇的 Linux命令——type
转自:科学随想录在Linux系统中,了解命令的类型、位置和完整路径对于系统管理和开发非常重要。type命令是一个强大而实用的工具,能够帮助我们查看给定命令的类型、位置和完整路径。在本文中,我们将深入探索type命令的用法和功能,并提供详细的代码示例和输出,以帮助读者全面了解该命令。第一部分:type
开源Linux
0
有意思!一个关于 Spring 历史的在线小游戏
发现 Spring One 的官网上有个好玩的彩蛋,分享给大家!进到Spring One的官网,可以看到右下角有个类似马里奥游戏中的金币图标。点击该金币之后,会打开一个新的页面,进入下面这样一个名为:The History Of Spring 的在线小游戏你可以使用上下左右的方向键来控制Spring
公众号程序猿DD
1
【Python】coverage,一个有趣的 Python 库!
大家好,今天为大家分享一个有趣的 Python 库 - coveragepy。Github地址:https://github.com/nedbat/coveragepy在软件开发中,测试是确保代码质量和稳定性的关键步骤之一。而代码覆盖率则是衡量测试覆盖代码的程度的重要指标之一。Python cove
机器学习初学者
0
盘点一个使用超级鹰识别验证码并自动登录的案例
点击上方“Python共享之家”,进行关注回复“资源”即可获赠Python学习资料今日鸡汤江上几人在,天涯孤棹还。大家好,我是皮皮。一、前言前几天在Python钻石交流群【静惜】问了一个Python实现识别验证码并自动登录的问题,提问截图如下:验证码的截图如下所示:二、实现过程这里大家激烈的探讨,【
IT共享之家
0