Spring MethodInvokingFactoryBean Beispiel

Im Frühjahr können SieMethodInvokingFactoryBean verwenden, um eine Methode auszuführen, das Ergebnis abzurufen und das Ergebnis in eine andere Bean einzufügen. Dieser Methodenaufruf ist in der XML-Konfiguration sehr nützlich, wird jetzt jedoch weniger für Annotationen und Spring-Ausdrücke verwendet.
1. MethodInvokingFactoryBean
1.1 Example to get the current Java version.
Spring XML-Konfiguration
package com.example.web;
public class JavaUtils {
String javaVersion;
public String getJavaVersion() {
return javaVersion;
}
public void setJavaVersion(String javaVersion) {
this.javaVersion = javaVersion;
}
}
1.2 Java equivalent.
System.getProperties().getProperty("java.version")
2. MethodInvokingBean
Spring 4 hat ein neuesMethodInvokingBean eingeführt, um dasselbe zu tun, nur ohne einen Wert zurückzugeben.
2.1 Java code, a bit long, but it works.
public void startDBM() {
MethodInvokingBean mBean = new MethodInvokingBean();
mBean.setTargetClass(DatabaseManagerSwing.class);
mBean.setTargetMethod("main");
String[] args = new String[] { "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", "" };
mBean.setArguments(args);
try {
mBean.prepare();
mBean.invoke();
} catch (Exception e) {
e.printStackTrace();
}
}
2.2 The MethodInvokingBean is good at XML configuration, but not in Java code, you can do the same thing with just one line of code.
public void startDBM() {
DatabaseManagerSwing.main(
new String[] { "--url", "jdbc:hsqldb:mem:testdb", "--user", "sa", "--password", "" });
}
2.3 XML example, show you how to pass a String [] array argument to MethodInvokingBean
--url jdbc:derby:memory:dataSource --user sa --password