动态刷新bean的属性有哪些

动态刷新bean的属性有哪些,第1张

通过何种方法进行属性的自动装配,它有以下五个属性值:

属性值 说明

no 不启用自动装配,Bean的引用必须通过ref元素进行定义。

byName 通过属性的名字查找JavaBean依赖的对象并为其注入。比如说类Cat有个属性”dog”,指定其autowire属性为byName后,Spring IoC容器会在配置文件中查找id/name属性为”dog”的bean,然后使用setter方法为其注入。如果在容器里没有找到id/name属性为”dog”的bean,也不会报错;但同时配置了属性dependency-check=”objects”后,就将抛出一个错误。

byType 通过属性的类型查找JavaBean依赖的对象并为其注入。比如类Computer有个属性printer,类型为Printer,那么,指定其autowire属性为byType后,Spring IoC容器会查找Class属性为Printer的bean,使用setter方法为其注入。如果找到了多个bean,则抛出一个致命的错误。如果没有找到不会报错,除非同时配置了属性dependency-check=”objects”,这时会抛出一个错误。

constructor 同byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用setter方法注入,而是使用构造子注入。如果找不到唯一的bean,就将抛出一个致命的错误。

autodetect 通过类的内省机制选择byType或constructor的注入方式。

default 默认值,由上级标签beans的default-autowire属性确定。

利用java的反射机制可以做到:

Object instance = beanClass.newInstance()//beanClass自定义class

Method setJobName = beanClass.getMethod("setJobName", String.class)

method.invoke(instance, "Super Cool Job")//开始设置值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11900496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存