#spring
#spring
Вопрос:
В настоящее время он используется, как показано ниже … интересно, существует ли более короткая версия (аналогичная пространству имен util)
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject">
<ref bean="transformation" />
</property>
<property name="targetMethod">
<value>addTransformers</value>
</property>
<property name="arguments">
<list>
<ref bean="customTransformers" />
</list>
</property>
</bean>
Ответ №1:
Вы можете написать его немного короче, используя Spring P-Namespace
Ответ №2:
Вы используете очень подробный синтаксис, вы можете сделать его короче, просто сделав его более кратким:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="transformation"/>
<property name="targetMethod" value="addTransformers"/>
<property name="arguments">
<list>
<ref bean="customTransformers" />
</list>
</property>
</bean>
Помимо этого и, возможно, используя p:
синтаксис, упомянутый @Ralph, я не знаю о ярлыке на основе пространства имен.
Ответ №3:
Другой подход, использующий @Configuration, но для настройки системного свойства, вы можете адаптировать, хотя:
@Bean
public Properties retrieveSystemProperties(){
return System.getProperties();
}
private Properties systemProperties;
public Properties getSystemProperties() {
return systemProperties;
}
@Resource(name="retrieveSystemProperties")
public void setSystemProperties(Properties systemProperties) {
this.systemProperties = systemProperties;
}
@Bean
public MethodInvokingFactoryBean methodInvokingFactoryBean() {
MethodInvokingFactoryBean methodInvokingFactoryBean = new MethodInvokingFactoryBean();
methodInvokingFactoryBean.setStaticMethod("java.lang.System.setProperties");
systemProperties.setProperty("http.keepAlive", "false");
methodInvokingFactoryBean.setArguments(new Object[]{systemProperties});
return methodInvokingFactoryBean;
}
Ответ №4:
Если у вас нет никаких параметров, вы можете сделать это:
<bean id="mybean" factory-instance="otherBean" factory-method="getMyBean"/>