SpringBoot——Bean属性绑定

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。SpringBoot——Bean属性绑定,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

简单介绍:

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

第三方Bean的绑定:

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

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

SpringBoot——Bean属性绑定

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

SpringBoot——Bean属性绑定 

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

SpringBoot——Bean属性绑定

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

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

SpringBoot——Bean属性绑定

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

SpringBoot——Bean属性绑定

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

 SpringBoot——Bean属性绑定

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

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

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

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

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

SpringBoot——Bean属性绑定

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

SpringBoot——Bean属性绑定

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

SpringBoot——Bean属性绑定

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/153250.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!