摘要:结论属性没有使用错,而是根据反射调用方法,将赋值给了了而已。免费领取验证码内容安全短信发送直播点播体验包及云服务器等套餐更多网易技术产品运营经验分享请访问网易云社区。文章来源网易云社区
本文由作者张远道授权网易云社区发布。
spring中常用PropertyPlaceHolderConfigurer来读取properties配置文件的配置信息。常用的配置方式有两种,一种是使用location
另一种是使用locations
查看PropertyPlaceHolderConfigurer的源码发现,整个PropertyPlaceHolderConfigurer的继承树中都没有location整个属性,仅仅只有locations这个属性。如下图所示。
因此,认为既然没有location这个属性,那使用时是不是不正确。但是仔细看看发现了PropertiesLoaderSupport中有setLocation()方法。
而查看spring有关依赖注入的源码:
即获得property对应的setter方法,以及property对应的值,然后通过反射,调用该方法即可。可以看出,不要求类的定义中真正包含改属性,只要对应的setter方法被调用即可以。因此,ioc容器从xml配置中读到属性为location的值,然后获得location对应的setter方法,即setLocation,然后通过反射,将location的值传入了setLocation中。如下图。
结论:location属性没有使用错,而是spring根据反射调用setLocation方法,将location赋值给了locations了而已。
免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐
更多网易技术、产品、运营经验分享请访问网易云社区。
文章来源: 网易云社区
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25354.html
摘要:关于使用这种方式我还有必要再说明一点若自己设置了加载属性文件,这句代码对此种场景就没有必要了,配置的占位符也是能够读取到的。 每篇一句 大师都是偏执的,偏执才能产生力量,妥协是没有力量的。你对全世界妥协了你就是空气。所以若没有偏见,哪来的大师呢 相关阅读 【小家Spring】详解PropertyPlaceholderConfigurer、PropertyOverrideConfigur...
摘要:配置之痛与解决之道当有很多项目需要你来不停的向集成测试和生产环境发时配置文件的差异性会造成很大的困挠一方面你不希望把敏感信息到处保存另一方面会大量的地址信息需要配置每个引入的第三方都需要配置往往不同环境的还都不一样一旦搞错了轻则项目起不来 配置之痛与解决之道 当有很多项目需要你来不停的向集成,测试和生产环境发时, 配置文件的差异性会造成很大的困挠.一方面你不希望把敏感信息到处保存. 另...
摘要:在这一步里,将配置文件的信息装入到容器的定义注册表中,但此时还未初始化。注册后处理器根据反射机制从中找出所有类型的,并将它们注册到容器后处理器的注册表中。是属性编辑器的注册表,主要作用就是注册和保存属性编辑器。 点击进入我的博客 1 Spring容器整体流程 1.1 ApplicationContext内部原理 AbstractApplicationContext是Applicati...
摘要:这严重地影响了开发的效率。参数校验所以我们的公共方法既要写注释,让人能看懂,也要对每一个传入的参数表示怀疑。公共方法随手一条提示信息,节约程序员的万千时间。 公共方法 当我们写一些公共组件或方法时,我们可能需要接收外部的参数,但是,我们并不总能保证我们的注释是完全能让他人理解的。 /** * 获取所有考评员信息 * @param {district} 区域 * @par...
阅读 1737·2021-11-24 09:39
阅读 1668·2021-11-22 15:22
阅读 984·2021-09-27 13:36
阅读 3097·2021-09-24 10:34
阅读 3308·2021-07-26 23:38
阅读 2618·2019-08-29 16:44
阅读 957·2019-08-29 16:39
阅读 1080·2019-08-29 16:20