MethodInvokingFactoryBean的作用是,通过定义类和它的方法,然后生成的bean是这个方法的返回值,即可以注入方法返回值。
MethodInvokingFactoryBean
MethodInvokingFactoryBean用来获得某个方法的返回值,该方法既可以是静态方法,也可以是实例方法。
该方法的返回值可以注入bean实例属性,也可以直接定义成bean实例。
静态方法返回值注入
配置:
方式1:直接注入staticMethod属性,写明类的全限定名加方法名:
1 | <bean id="myObject" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> |
Spring会将此属性切分为class和method,就和方式2的配置结果一样。具体源码如下:
1 | public void prepare() throws ClassNotFoundException, NoSuchMethodException { |
方式二
1 | <bean id="sysProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> |
增加参数
1 | <bean id="javaVersion" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> |
应用:初始化Spring容器时,将某些配置注入到环境变量中
1 | <bean id="sysProps" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> |
如上就将kafka.consumer.host注入到了环境变量中。
原文链接: https://www.317318.xyz/p/7111bf04.html
版权声明: 转载请注明出处.