当前位置: 首页 > 面试题库 >

使用multi-arg方法初始化Spring bean

田向荣
2023-03-14
问题内容

我想创建以下具有方法 setThresholds(Number highThreshold,Number lowThreshold)的 Spring
bean(一个JMX监视器

我可以在配置中调用该方法(带有两个参数)吗?我不想编写代码来调用它。

<bean id="myMonitor" class="javax.management.monitor.GaugeMonitor" init-method="start">
  <property name="observedObject">
    <bean class="javax.management.ObjectName">
      <constructor-arg value="test.jmx:name=testBean1" />
    </bean>
  </property>
  <property name="observedAttribute" value="testProperty" />
  <property name="granularityPeriod">
    <bean class="java.lang.Float">
      <constructor-arg value="1000" />
    </bean>
  </property>
</bean>

问题答案:
可以通过使用 MethodInvokingFactoryBean(Spring
[4.x]( https://docs.spring.io/spring/docs/4.0.x/javadoc-
api/org/springframework/beans/factory/config/MethodInvokingFactoryBean.html)和[5.x]( https://docs.spring.io/spring/docs/5.0.x/javadoc-
api/org/springframework/beans/factory/config/MethodInvokingFactoryBean.html))来实现(这不是我的主意,我只是在以下论坛中找到它: http

//forum.springsource.org/archive/index.php/t-16354
.html

SomeClass someobject = new SomeClass();
someobject.set(“String1”,”String2”);

<bean id="someobject" class="SomeClass" />

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetObject" ref="someobject">
    <property name="targetMethod" value="set">
    <property name="arguments">
        <list>
            <value>String1</value>
            <value>String2</value>
        </list>
    </property>
</bean>


 类似资料:
  • 初始化方法定义了对Keras层设置初始化权重的方法 不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是kernel_initializer 和 bias_initializer,例如: model.add(Dense(64, kernel_initializer='random_uniform', bias

  • 初始化方法定义了对Keras层设置初始化权重的方法 不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是init,例如: model.add(Dense(64, init='uniform')) 预定义初始化方法 uniform lecun_uniform: 即有输入节点数之平方根放缩后的均匀分布初始化(LeCun 98). normal identity:仅用于权值矩

  • 问题内容: 来自Sun文档 通常,您需要将代码放在构造函数中以初始化实例变量。 使用构造函数初始化实例变量有两种选择:初始化块和final方法。 我能理解初始化块的用法。谁能解释一下实例初始化方法的最终方法吗?非最终公开赛员可以完成这项工作。为什么不只是使用它们呢? 问题答案: 您链接到的同一Sun教程中已经描述了该优点: 最终方法不能在子类中覆盖。 有关接口和继承的课程将对此进行讨论。 非最终方

  • 问题内容: 当搜寻通过Java语言规范来回答这个问题),我学到的是 在初始化类之前,必须先初始化其直接超类, 但不初始化由该类实现的接口。 同样,在初始化接口之前,不会初始化接口的超级接口。 出于我自己的好奇心,我尝试了一下,并且未如预期的那样对接口进行了初始化。 该程序打印 但是,如果接口声明了一个方法,则确实会发生初始化。考虑给定的接口 然后上面的相同程序将打印 换句话说,接口的字段已初始化(

  • 问题内容: 每当我尝试访问phpMyAdmin时,都会出现以下错误: “ 缺少mbstring扩展名。请检查您的PHP配置。 ” 我在CentOS 7服务器上运行LEMP堆栈。我选择使用PHP 7进行此安装。我在运行早期版本的PHP的相同设置上没有遇到此错误。 即使 mbstring.ini (/etc/php.d/)包含以下内容,也会返回false : 我100%确定mbstring模块已安装在

  • 问题内容: 我试图从一个简单的ArrayList的内容填充ListView。这是我的 Controller.java文件: 这是我的Style.fxml文件: 该程序运行,但是我输入的歌曲没有出现在ListView中(并且Song类确实具有toString方法)。 我能做什么? 问题答案: 问题是没有将控制器的初始化为预期问题的质询者。 Java 8中FXMLLoader的操作有点奇怪。 如果您在