SpringBoot——Bean属性绑定

简单介绍:

之前我们介绍过我们如何在Bean中获取配置文件的方式,就是通过将类注册到Spring容器中,然后通过@ConfigurationProperties()注解,这个注解有一个参数叫做prefix,参数的值就是我们在配置文件中配置的一组数据的对象的名字,然后就可以获取这一组对象的值装填到我们的对象中,那么这一节我们来看看如何做出更多的操作。

第三方Bean的绑定:

在之前我们是自己写了一个类,然后注册到容器中,但是如果我们要为一个不是自己写的类,而是由第三方提供的类,肯定不能打开源码去将其赋值或者去将其添加注解注册到Spring容器中,那么就需要使用注解的方式:

除了使用@Component将我们的类注册到容器中,还可以使用引入的方式将我们的类在使用的时候注册进容器中:

这是我们之前做过的一个案例,就是将配置文件中的配置项读取到类中,这个类中使用了@ConfigurationProperties注解引入配置信息,使用了@Component进行注册,如果我们去掉@Component注解,那么这个程序就会报错:

 

报错的原因很简单,就是因为它自动装填是在Spring容器中进行的,你现在要装填的类并不在我们的Spring容器中,所以就会报错,此时我们需要在引导类中另一个注解: 使用@EnableConfigurationProperties()注解,这个注解有一个值就是你自动注入的时候的类的class文件,那么他就会自动将这个类注册进容器中,然后这边就不会报错了:

这样做有什么好处呢,好处就是如果我们不引用这个配置文件,则Spring不会去管理它,就节省了我们的Spring的管理成本,当我们使用的时候,我们引入这个文件,Spring就会去管理他。如果使用@Component注解,则无论会不会用到,他都会被注册到容器中。

然后说回正题,如何给我们的第三方类去填充配置文件中的数据呢?首先我们先引入一个第三方类,就以druidDataSource为例:

这个DruidDataSource是第三方为我们提供的,所以它的参数肯定不是我们手动去填写的,并且它里面现在肯定是空的,我们可以获取以下里面的属性值先来看一下:

当程序运行之后,他会在控制台上输出DruidDataSoruce的url的值:

 

这个小小的null就表示我们的程序内部没有任何的数据,现在我们仅使用一个注解就能为其填充数据:

 这个和之前我们为自己写的类添加数据的注解是一样的,一摸一样的,只不过它使用在了@Bean注解的下面,接下来我们来看运行结果,他就会输出我们在配置文件中编写的值:

 这样我们就完成了给第三方的Bean填充配置文件中的值的过程,其实很简单,就是将之前我们给类赋值时候的注解写在@Bean注解的方法上,那么这一组数据就会赋值到方法的返回值类中。

松散绑定:@ConfigurationProperties在绑定属性的时候支持多种模式匹配

我们在配置文件中书写属性名的时候,无论写成任何的格式都可以绑定到类中:

这是之前的配置文件的数据,现在我们改一下它的属性名:

然后我们执行程序,看到依然可以输出结果出来: 

这里只是演示一下,其实除了大写,你就算是小写带大写,大写带小写,大写带下划线,小写带下划线,一个字母隔一个下划线他都可以识别,这种对格式不是很固定的绑定方式就是松散绑定。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值