SpringBoot实用开发之Bean属性配置详解

SpringBoot实用开发之Bean属性配置详解

第三方bean的绑定

  • 使用注解@ConfigureProperties(prefix=“配置文件中属性的前缀”)绑定第三方Bean
    例如:
@Component
@Data
@ConfigurationProperties(prefix = "serverss")
public class Server {
    private String port;
    private String ipadress;
    private String timeout;
}
  • 使用@EnableConfigureProperties注解,也可以实现绑定属性,通过设置被绑定类来实现
@EnableConfigurationProperties(Server.class)
  • **注意:**使用@EnableConfigureProperties注解时应当取消被绑定类中的@Comment注解,否则spring运行时会检测到两个Bean,相当于一个Bean加载了两次
Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.example.Server' available: expected single matching bean but found 2: server,serverss-com.example.Server

松散绑定

  • 配置文件中,属性名称可以自由书写,不需要区分大小写,通常使用的是“烤肉串模式”,即:ip-adress;
    serverss:
        port:  8520
        ip-adress: 192.168.0.1
        timeout: 100
  • 在被绑定类中,prefix属性名称统一使用小写字母,大写字母将会报错。
  • 错误示范:
      @ConfigurationProperties(prefix = "serVerss")

**注意的是:**使用@Value注解时,不能使用松散绑定,属性名称必须与配置文件中的一模一样

计量单位

  • Duration 时间的计量单位
    • 默认单位是秒
    • 使用@DurationUnit(ChronoUnit.HOURS)注解可以修改时间单位,使用ChronoUnit类进行单位的选择
  • DataSize 存储大小的计量单位
    • 默认单位是B
    • @DataSizeUnit(DataUnit.KILOBYTES)注解修改存储大小的单位,使用DataUnit修改存储空间的大小

数据校验

  • 数据校验使用的java提供的Validation接口,
	 <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
  • 还需要添加validation接口实现的规范
	<dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>7.0.1.Final</version>
        </dependency>

  • 在需要使用数据校验的类上方添加@Validete注解,开启数据校验@Validated
		@Component
		@Data
		@Validated
		@ConfigurationProperties(prefix = "serverss")
		public class Server {
		@Max(value = 8,message = "最大值不能超过8")
		private String port;
		private String ipadress;
		private String timeout;
		@DurationUnit(ChronoUnit.HOURS)
		private Duration duration;
		@DataSizeUnit(DataUnit.KILOBYTES)
		private DataSize dataSize;
	}

进制转换规则

  • SpringBoot配置文件中如何使用int类型的配置,开头是0,例如0127,SpringBoot处理时,将转成87添加在属性中,则SpringBoot将该类型按照八进制进行处理,这时需要添加双引号进行转成字符串
  • SpringBoot配置文件中,String类型可以直接输入,也可以添加双引号出入
    2022-07-24 18:01:45 星期日
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值