SpringBoot
【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】
SpringBoot 原理篇
文章目录
- SpringBoot
- SpringBoot 原理篇
- 2 自定义starter
- 2.5 使用属性配置设置功能参数【2】
- 2.5.1 直接开干
- 2.5.2 小结
2 自定义starter
2.5 使用属性配置设置功能参数【2】
2.5.1 直接开干
上一节我们把【模式切换】、【是否清数据】两个配置加上了
还剩了一个
cycle,输出频率【日志显示周期】
这个还真和另外两个不太一样
这个配置值的使用位置
在注解里面,好家伙,这下知道不一般了
这里就不能用${} 的方式读取,有值还好说
运行效果
如果没给值
再次运行
直接就挂掉了【就是读取不到数据】
虽然也有解决办法
@Scheduled(cron = "0/${tools.ip.cycle:5} * * * * ?")
5就是默认值
再次安装运行
这样表面上是解决了,不一样
很明显,压根儿就没用咱们的属性值【读取bean 中的属性值才是真正的解决方案】
先来个测试
package cn.dingjiaxiong.properties;
import org.springframework.stereotype.Component;
/**
* ClassName: TestValue
* date: 2022/10/25 20:13
*
* @author DingJiaxiong
*/
@Component("abc")
public class TestValue {
private Integer cycle = 1;
public Integer getCycle() {
return cycle;
}
public void setCycle(Integer cycle) {
this.cycle = cycle;
}
}
这就是一个bean, 里面有一个属性值cycle,默认为1
这样就可以读取到了
还有一步,加载测试bean
OK,直接启动这个服务,看看效果
可以看出是可以的【即这个值可以加载上】
OK, 测试成功,记得恢复一下,现在要来真的了
先给配置属性类来个bean 名称
现在我们已经明着说了它是一个 bean 了
在自动配置类中,就不用EnableConfigurationProperties 了
注掉
仅仅让它加载就行了
业务层
@Scheduled(cron = "0/#{ipProperties.cycle} * * * * ?")
OK,安装测试
安装完成,运行SSMP
现在没配置值,默认就是用的属性值 5
OK,现在配一下
再次运行
OK, 成功了
回顾一下
- 配置信息
- 自定义bean名称
- 放弃配置属性创建bean方式,改为手工控制
- 使用#{beanName.attrName}读取bean的属性
2.5.2 小结
- 配置调整